heyohbaby 发表于 2014-11-11 21:17:27

怎么把亚洲除日本的ip自动屏蔽掉,不能访问我的网站?

求教yueguang版主!怎么把亚洲除日本以外的ip自动屏蔽掉,不能访问我的网站?

月光飞燕 发表于 2014-11-11 22:57:37

有技术是很好实现的,加个geoip库,几行代码就解决了
没技术就难了,有没有这方面的插件,要自己找一找了

foxconndmd 发表于 2014-11-12 07:25:40

iptables——nginx——php
任何一处都可以使用GEOIP限制

乐乐 发表于 2014-11-12 09:06:23

如果是wordpress 直接用插件

mulao 发表于 2014-11-12 11:13:13

推荐两个方法,一个是nginx,第二是php里面
两者都要用上geoip,这个是maxmind的免费ip全球数据库

1.nginx
nginx里面有模块叫ngx_http_geo_module,编译的时候加上这个模块就能使用了,
给个nginx配置文件实例

# vi /etc/nginx/nginx.conf

http {
...
geoip_country /var/lib/GeoIP/GeoIP.dat;
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
...
}

server {
...
      location / {
            root   /home/vpsee/www;
            if ($geoip_country_code !~* JP) {   return 404;}
            #如果不匹配jp,那就404,只有jp能通过
            ...
      }
...
}

2.php,
这个比较简单,不需要安装什么,只要下载到几样东西就可以了
数据库文件GeoIP.dat
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

再加上个数据库读取文件,保存为 geoip.php
http://geolite.maxmind.com/download/geoip/api/php/geoip.inc

一下这段代码贴到自己想要进行判断的页面就行了

    //geophp的位置
    include ('geoip.php');   
    // GEOIP数据库位置
    $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);
   
    if($country=='jp') {;} else {exit;}

Mario 发表于 2014-11-12 12:40:38

为什么要屏蔽啊!这样不会影响效率吗

heyohbaby 发表于 2014-11-12 14:46:15

Mario 发表于 2014-11-12 12:40 static/image/common/back.gif
为什么要屏蔽啊!这样不会影响效率吗

我乐意。                                 

亚马逊联盟 发表于 2014-11-12 19:11:02

或者直接。htaccess屏蔽
有个专门更新国家ip地址库的网站,就直接复制那ip段,用。htaccess屏蔽就是。

xinyf88 发表于 2014-11-12 21:40:41

还是人多力量大啊,学习了

1988chg 发表于 2014-11-13 00:10:09

学习了。谢谢众多感受高手分享

myxiu10000 发表于 2014-11-13 16:31:11

ip库禁用, 不会的找服务商,记得以前有专门搞这个的
页: [1]
查看完整版本: 怎么把亚洲除日本的ip自动屏蔽掉,不能访问我的网站?