PHP代码屏蔽中国的IP地址

添加时间:10-08-06 所属分类:PHP工具与代码
  转载自http://www.im286.com/thread-4929892-1-1.html

做外贸的网站一般都不想让国内人访问,可以采用如下的方法:
1. 从APNIC获取一份国家与地区IP段数据 [url=ftp://ftp.apnic.net/apnic/dbase/data/country-ipv4.lst:1msa83z5]ftp://ftp.apnic.net/apnic/dbase/data/country-ipv4.lst[/url:1msa83z5]
2. 将中国的数据整理取出(用excel的数据筛选功能)
[color=#FF0000]注意不要把自己所在的IP段屏蔽啊,不然你自己也无法访问了![/color]
3. 编写PHP代码如下

[code]<?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后,与之比较,如果匹配,就可以在这里显示一个错误页,或重定向了
};
}
?>[/code]
程序执行时间平均20毫秒,篇幅有限,仅列出部分IP段,完整的请自行获取。

前篇:京津渝等28城市试点公积金贷款建保障房 后篇:PHPBB3论坛首页板块名称字体增大
发表我的评论


推荐文章   每天往返每天往返4公里 抱着妹妹把学上   你听,这泉水里流动着济南过去的故事!   这群中国女孩边捡垃圾边踢球 连续三年夺...   身在济南不得不做的几件事,尤其最后一...   少年智则中国智 厉害了城围联的少年棋手...
随机文章   网站301转向大全   超级PHP急速编程器   php 正则表达式小结   PHP 概率运算函数   PHP视频教程LAMP兄弟连原创光盘高清WMV...
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555