怎么把亚洲除日本的ip自动屏蔽掉,不能访问我的网站?
求教yueguang版主!怎么把亚洲除日本以外的ip自动屏蔽掉,不能访问我的网站?有技术是很好实现的,加个geoip库,几行代码就解决了
没技术就难了,有没有这方面的插件,要自己找一找了
iptables——nginx——php
任何一处都可以使用GEOIP限制
如果是wordpress 直接用插件
推荐两个方法,一个是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 static/image/common/back.gif
为什么要屏蔽啊!这样不会影响效率吗
我乐意。
或者直接。htaccess屏蔽
有个专门更新国家ip地址库的网站,就直接复制那ip段,用。htaccess屏蔽就是。
还是人多力量大啊,学习了
学习了。谢谢众多感受高手分享
ip库禁用, 不会的找服务商,记得以前有专门搞这个的
页:
[1]