PHP程序屏蔽IP问题

walunwine5 2012-11-27 02:43:52
大家好.刚刚尝试通过PHP直接屏蔽IP的问题
在网上看了些说法.但是都没有成功.不知道哪位能帮忙看一下.
现在常用的有两种
1------------------------------------------------
<?php
//加IP访问限制
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$userip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$userip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$userip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$userip = $_SERVER['REMOTE_ADDR'];
}
$ban_range_low=ip2long("217.0.0.0"); //ip段上
$ban_range_up=ip2long("217.255.255.255");//ip段尾
$ip=ip2long($userip]);
if ($ip>$ban_range_low && $ip<$ban_range_up)
{
print "Banned";
exit();
}
?>
这是直接屏蔽IP.经测试无法使用

2----------------------------------------
<?php
error_reporting(E_ALL ^ E_NOTICE);

// 分析 HTTP_ACCEPT_LANGUAGE 的属性
// 这里只取第一语言设置 (其他可根据需要增强功能,这里只做简单的方法演示)

preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$lang = $matches[1];

switch ($lang) {
case 'zh-cn' :
header('Location: '>http://cn.example.com/[/url]');
break;
case 'zh-tw' :
header('Location: '>http://tw.example.com/[/url]');
break;
case 'ko' :
header('Location: '>http://ko.example.com/[/url]');
break;
default:
header('Location: '>http://en.example.com/[/url]');
break;
}

?>
这个是通过屏蔽浏览器的语言操作.可是也出现了无法访问的问题.

不知道是否可以通过直接屏蔽客户访问端的WIN系统语言进行屏蔽?

麻烦帮忙解决一下.谢谢.
...全文
180 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
walunwine5 2012-11-27
  • 打赏
  • 举报
回复
引用 3 楼 TM_skyinfo 的回复:
<script type="text/javascript"> sysLanguage=navigator.systemLanguage?navigator.systemLanguage:navigator.language; if(sysLanguage == 'zh-cn' || sysLanguage == 'zh-CN'){ window.location.……
这个方法是针对浏览器的语言而并不是针对操作系统的语言设置,刚刚用CHROME测试过了. 把CHROME的语言改为EN之后 网站仍旧可以访问.
TM_skyinfo 2012-11-27
  • 打赏
  • 举报
回复
<script type="text/javascript"> sysLanguage=navigator.systemLanguage?navigator.systemLanguage:navigator.language; if(sysLanguage == 'zh-cn' || sysLanguage == 'zh-CN'){ window.location.href='test.html'; } </script>
walunwine5 2012-11-27
  • 打赏
  • 举报
回复
我是想屏蔽整个系统语言的访问,例如英文和日文操作系统的访问者。因为通过屏蔽操作系统就不会错杀。而屏蔽IP可能会错杀。不过我是希望能够搞明白这两种都怎么样操作 1.按操作系统语言屏蔽访问者 2.按IP屏蔽访问者 刚刚又测试了htaccess的方法屏蔽IP仍旧没搞出来.
十一文 2012-11-27
  • 打赏
  • 举报
回复
楼主 你到底想屏蔽 什么 1.是屏蔽某些ip不让访问?那么你得获取准确ip 2.你想屏蔽windouws的访问?? 那么通过ua 不过这毒不能达到完全屏蔽的目的,因为这些都可以伪造

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧