2016-02-26 89 views
7

我正在管理一个网站,并且该网站是在Wordpress中构建的。它从机器人获得大量的流量,我们想要阻止所有这些,除了Google Yahoo Bing百度等重要机器人。我们使用cloudflare,我想从两层,Cloudflare防火墙和htaccess文件中阻止它们。在htaccess文件,我知道如何阻止一个单一的IP地址和持续的IP范围的IP地址尾随像123.123.123.0/16在htaccess文件中阻止IP范围

不过,我需要阻止以下IP地址 69.30.192.0 - 69.30.255.255 93.55。 115.64 - 93.55.115.71

如何在htaccess文件中设置此规则? Cloudflare似乎遵循相同的规则。

+0

小心! [Cloudflare充当反向代理,因此所有连接似乎都来自Cloudflare IP(就服务器而言)](https://support.cloudflare.com/hc/en-us/articles/200170706-如何-DO-I-恢复原装-访问者IP与 - Nginx-)。另外,如果您在Cloudflare防火墙级别进行筛选,并且您的DNS设置正确,则无论如何,您都不应该看到来自这些机器人的直接流量。 –

回答

2

不知道来源有多可靠,但是这是从clockwatchers

http://www.clockwatchers.com/htaccess_block.html

要阻止一个IP地址

order allow,deny 
deny from 127.0.0.1 
allow from all 

这将拒绝所有GET和POST请求作出通过IP地址127.0.0.1,显示错误消息而不是

要阻止多个IP地址,列出它们每行一个

order allow,deny 
deny from 127.0.0.1 
deny from 127.0.0.2 
deny from 127.0.0.3 
allow from all 

屏蔽整个IP范围

deny from 127.0.0 

这将拒绝任何用户访问与所述127.0.0.0的地址到127.0.0.255范围。

编辑:刚刚发现这里类似的问题

How to Block an IP address range using the .htaccess file

看起来出来的答案都差不多了。

3

你已经差不多了。/16表示法实际上被称为CIDR Notation

该数字表示要从左到右匹配多少位。 Wiki页面对其进行了深入解释。

或者......你可以把我的话,用这样的一个我发现了一个工具:http://www.ipaddressguide.com/cidr#range

然后,您可以使用在你的.htaccess的否认就像你会为一个单一的IP与给定的值:

Order Allow,Deny 
Deny from 69.30.192.0/18 
Deny from 93.55.115.64/29 
Allow from all 
1

@Nick的答案是好的,所以在配置.htaccess方面你应该走他的路。

我的回答是有关在您的问题中检测到的另一个问题:您愿意阻止IP范围69.30.192.0 - 69.30.255.255,但快速搜索ARIN数据库(WHOIS IP地址)显示此范围不属于一个人。

事实上,通过这样做,您可能会拒绝您的网站为非漫游器。

如:

69.30.192.0 - 69.30.192.31属于漏**** COM

...

69.30.193.0 - 69.30.193.15属于TA *** **,Abdelkader