首页  RSS订阅  繁體中文登录  注册  用户中心

您的位置:PHP教程

  • PHP教程
  • 屏蔽中国的IP地址的php代码(2013-05-18)

    做外贸的网站一般都不想让国内人访问,可以采用如下的方法:

    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段,完整的请自行获取。

    上一篇:2013快乐男声类网站关键词SEO优化经验分享
    下一篇:分析那些百度长期不收录的黑名单页面