在需要禁止訪問或提交表單的頁面添加下面的代碼進行判斷就可以了。
注意:下邊只是一個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; } ?>
<?php
$userip = $_SERVER['REMOTE_ADDR']; //獲得用戶ip
$userips = explode(".", $userip);//把獲得的ip切開成數組
if(($userips[0]<=195 && $userips[0]>=195)&&($userips[1]<=163 && $userips[1]>=163)&&($userips[2]<=079 && $userips[2]>=072)&&($userips[3]<=255 && $userips[3]>=000)){
echo "您的ip不符!";
exit;
}else{
echo "通過驗證!";
}
?>
我的思路就是這樣的
獲得用戶的IP 用"."分割成數組
再將 限制IP斷 分別用"."分割成數組
然後判斷用戶IP是否在這個IP斷內(分別判斷四個元素是否在這個范圍裡)
……
下面是藍色理想裡找到的一個供你參考
——————————————————
<?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......余下全文>>
if (in_array($ip, $blacklist)){ //阻止黑名單中的IP訪問
header('HTTP/1.0 403 Forbidden');
echo "禁止訪問";
exit;
}