限制IP访问的php代码,很实用
我找一个高手写了一段PHP限制IP的代码,不敢独享,特发来给需要的朋友,并且在这里谢谢给我代码的: +unknown 大侠!
代码如下:
----------------------------
<?php
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<count($ip_lib);$i++){
if(ereg($thenetip,$ip_lib[$i])){
$allow=1;
break;
}
}
if ($allow==1)
{
echo "验证通过";
}
else {
echo "<script>location.href='Error.php';</script>";
}
?>
--------------------------
代码结束!
说明:
待自己建立test.ini文件
在这个文件里输入允许访问的IP段
如:
110.110.110
111.111.111
112.112.112
192.168.1
192.168.0
... ...
等等
只需要输入前三位就行了!
太实用了。呵呵。