小狼人Lv92
屏蔽中国的IP地址的php代码 网页编程
做外贸的网站一般都不想让国内人访问,可以采用如下的方法:
1. 从APNIC获取一份国家与地区IP段数据 ftp://ftp.apnic.net/apnic/dbase/data/country-ipv4.lst
2. 将中国的数据整理取出(用excel的数据筛选功能)
3. 编写PHP代码如下:
1. 从APNIC获取一份国家与地区IP段数据 ftp://ftp.apnic.net/apnic/dbase/data/country-ipv4.lst
2. 将中国的数据整理取出(用excel的数据筛选功能)
3. 编写PHP代码如下:
<?php function ipCIDRCheck ($IP, $CIDR) { list ($net, $mask) = split (“/”, $CIDR); if($mask>16){ $net=$net.”.0″; }else{ $net=$net.”.0.0″; } $ip_net = ip2long ($net); $ip_mask = ~((1 << (32 – $mask)) – 1); $ip_ip = ip2long ($IP); $ip_ip_net = $ip_ip & $ip_mask; return ($ip_ip_net == $ip_net); } $subnets=<<<Eof 60.0/11 60.55/16 60.63/16 60.160/11 60.194/15 60.200/13 60.208/12 60.232/15 60.235/16 60.245.128/17 60.247/16 60.252/16 60.253.128/17 60.255/16 Eof; $subnetarray=explode(“\n”,$subnets); foreach($subnetarray as $subnet){ if(ipCIDRCheck (“60.168.86.219″, $subnet)){ echo “60.168.86.219 in => “.$subnet; //取得用户ip后,与之比较,如果匹配,就可以在这里显示一个错误页,或重定向了 }; } ?>程序执行时间平均20毫秒,篇幅有限,仅列出部分IP段,完整的请自行获取。
7 已被阅读了3098次 楼主 2017-07-21 15:48:55