快排工具

如何利用.htaccess来屏蔽某IP或IP段访问网站

作为一名网站运营者,相信大家跟我一样,有过类似情况!好好的做个网站,有时总会遇到各种的恶意对待:恶意扫描,采集,镜像,甚至被CC攻击,这个时候很多人都不知道怎么办,其实屏蔽禁止这些恶意IP就是我们其中一种应对方法。很多网站都是使用虚拟主机,有些虚拟主机有提供屏蔽IP黑名单的功能,有些却没有这样的功能,像我用的西部数码就不提供这种IP黑名单的功能,那有没有其他方法实现禁止某IP或IP段访问。答案是有的,如果你的网站所在服务器是使用Linux系统,那么可以利用.htaccess来屏蔽某IP或IP段访问。其原理是.htaccess来屏蔽某IP或IP段访问网站文件或目录,达到屏蔽效果!如何利用.htaccess来屏蔽某IP或IP段访问网站

.htaccess禁止IP语法有两种,分别是:

Order Allow,Deny  及  Order Deny,Allow

注意:Order语句中Allow,Deny的顺序不一样,语法是不一样的。

1、使用Order Allow,Deny禁止IP或IP段访问方法(IP改为你要禁止的IP即可):

Order Allow,Deny 
Allow from all
Deny from 187.124.1.56

如果是屏蔽多个IP,中间用空格隔开就可以:

Order Allow,Deny 
Allow from all
Deny from 192.168.1.123168.153.21.23 222.222.222.121
或者
Order Allow,Deny
Allow from all
Deny from 192.168.1.123
Deny from 168.153.21.23
Deny from 222.222.222.121
...

如果是屏蔽多个IP段,可以下面这样(屏蔽192.168.1.1到192.168.1.254的所有IP):

Order Allow,Deny 
Allow from all
Deny from 192.168.1(注:标准写法Deny from 192.168.1.0/24)

【注:ip段语法】
封整个段即从123.0.0.1到123.255.255.254的命令:Deny from 123.0.0.0/8
封IP段即从123.45.0.1到123.45.255.254的命令:Deny from 124.45.0.0/16
封IP段即从123.45.6.1到123.45.6.254的命令是:Deny from 123.45.6.0/24

2、使用Order Deny,Allow禁止IP或IP段访问方法(同理,IP改为你要禁止的IP即可):

Order Deny,Allow
Deny from 192.168.1.123

屏蔽多个IP及IP段的方法同上,这里就不重复了。.

一般来说直接把上面的语句添加到.htaccess就会生效,不用重启Apache服务(况且虚拟主机里我们也没有权限重启Apache),我测试过是可以的(把自己的IP禁止再访问网站),效果如下:

如何利用.htaccess来屏蔽某IP或IP段访问网站

但是有些虚拟主机即使.htaccess添加Order Allow,Deny或者Order Deny,Allow也是没有效果,不能禁止到目标IP的访问,原因我也不明白,可能是没有Allow,Deny功能,也可能是需要重启Apache。刚好西部数码的虚拟主机也y有同样问题,我还一直调试了很长时间,后来才看到官方有提供解决办法(之前的调试算是瞎忙了):

.htaccess添加以下代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{http:X-Forwarded-For}&%{REMOTE_ADDR}&%{http:X-Real-IP} (192.168.1.123) [NC]
RewriteRule (.*) - [F]
</IfModule>

屏蔽多个IP用”|”隔开,如:192.168.1.123|168.153.21.23;屏蔽IP段还是一样:192.168.1

如果你的.htaccess添加Order Allow,Deny同样没有效果,可以试试这段代码,应该就可以了。

 

号外:如果此类方法也不能解决,请查阅快排小灵通为大家总结的怎么通过nginx禁止ip或ip段访问网站服务器

以上就是快排小灵通为大家总结的禁止ip或ip段访问网站,觉得有帮助,欢迎下方打赏!

本网站部分素材来源网络,如有侵犯,请联系删除!作者:wesipy,如若转载,请注明出处:http://www.kpxlt.com/archives/35297