Rumah >pembangunan bahagian belakang >tutorial php >php中限制ip段访问、禁止ip提交表单的代码分享,ip表单_PHP教程
在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了。
注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改。
<?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']; } //限制ip if ($userip=='192.168.1.88'){ header("location:http://t.qq.com/wb631992791");//被禁止后跳转到微博 exit; } //限制ip段 $ip_arr = explode('.', $userip); #限制的ip段,假设是192.168.*.* if (!(($ip_arr[0] == '192' && $ip_arr[1]=='168') )){ header("location:http://t.qq.com/wb631992791");//被禁止后跳转到微博 exit; }else{ header("location:http://afish.cnblogs.com");//正常IP则直接访问小鱼阁首页 exit; } ?>
$userip = $_SERVER['REMOTE_ADDR']; //获得用户ip
$userips = explode(".", $userip);//把获得的ip切开成数组
if(($userips[0]=195)&&($userips[1]=163)&&($userips[2]=072)&&($userips[3]=000)){
echo "您的ip不符!";
exit;
}else{
echo "通过验证!";
}
?>
我的思路就是这样的
获得用户的IP 用"."分割成数组
再将 限制IP断 分别用"."分割成数组
然后判断用户IP是否在这个IP断内(分别判断四个元素是否在这个范围里)
……
下面是蓝色理想里找到的一个供你参考
——————————————————
class IP{ //获取客户IP地址
function getIpAdr(&$ ip){
$ ip1=getenv("HTTP_X_FORWARDED_FOR");
$ ip2=getenv("HTTP_CLIENT_IP");
$ ip3=getenv("REMOTE_ADDR");
if($ ip1&&$ ip1!='unknow')
$ ip=$ ip1;
else if($ ip2&&$ ip2!='unknow')
$ ip=$ ip2;
else if($ ip3&&$ ip3!='unknow')
$ ip=$ ip3;
else
$ ip='127.0.0.1';
}
}
function get_netip($ myip){ //只留客户IP地址的前三位
$ temp=explode(".",$ myip);
$ netip.=$ temp[0];
$ netip.=".";
$ netip.=$ temp[1];
$ netip.=".";
$ netip.=$ temp[2];
return $ netip;
}
$ filename="test.ini"; //定义操作文件
$ ip_lib=file($ filename); //读取文件数据到数组中
$ allow=0;
$ IP=new IP;
$ thisip="";
$ IP->getIpAdr(&$ thisip);
$ thenetip=get_netip($ thisip);
for($ i=0;$ i
$ allow=1;
break;
}
}
if ($ allow==1......余下全文>>
if (in_array($ip, $blacklist)){ //阻止黑名单中的IP访问
header('HTTP/1.0 403 Forbidden');
echo "禁止访问";
exit;
}