查找属于特定ISP的所有IP范围

我遇到了一个问题,他们一直在不停地用激烈的方式来刮我的网站。 浪费带宽和CPU资源。 我已经实现了一个系统,它跟踪我的Web服务器访问日志,将每个新的IP添加到数据库中,跟踪从该IP发出的请求的数量,然后,如果同一个IP超过了某个请求的阈值在一段时间内,它通过iptables被阻塞。 这可能听起来很复杂,但据我所知,目前还没有预先devise的解决scheme将某个IP限制在一定数量的带宽/请求。

这对于大多数爬虫来说工作正常,但是一个非常执着的人每次被阻止时都会从他/她的ISP池中获得一个新的IP。 我想完全阻止ISP,但不知道如何去做。

在几个IP地址上做一个whois,我可以看到他们都共享相同的“netname”,“mnt-by”和“origin / AS”。 有没有办法可以查询ARIN / RIPE数据库的所有子网使用相同的mnt-by / AS / netname? 如果没有,我还可以怎样去获得属于这个ISP的每个IP?

谢谢。

通过我自己的想法。 有点。

robtex.com列出了给定AS的所有IP范围, url为: http ://www.robtex.com/as/as123.html#bgp

仍然不知道如何或从哪里robtex检索这个信息。 如果其他人想要插入数据并解释数据来自哪里,那就太棒了。

whois [IP address] (或whois -a [IP Address] )通常会给您一个CIDR掩码或属于该公司/提供商的地址范围,但parsing结果留给读者练习至less有2个常见的whois输出格式)。

请注意,这种批发阻止也可能会使合法用户失效。 在采取这种方法之前,您应该联系相关ISP的滥用服务台(通常在其netblock或DNS域名的whois信息中列出,否则滥用@是一个开始的好地方),以查看情况是否可以以外交方式解决,而不是技术上。


另外请注意,有一些预先制定的解决scheme来限制IP每秒的请求 – 检查mod-qos或您的系统的防火墙/stream量整形capibilities。

既然你有权访问iptables,我会假设你有系统的root访问权限。 在这种情况下,如果他们尝试滥用服务(HTTP,DNS,Mail,SSH ..等)通过点击服务端口N次,我会build议安装Fail2Ban这将阻止IP(在一定的时间你决定)在X时期内。 (所有用户决定)

我正在使用我的服务器,我得到非常好的结果。 特别是那些希望攻击我的SSH的chinease黑客。

打我的主页了解更多信息。 我有一个关于fail2ban的博客文章。

你可以试试这个工具 。 这不是快,但工作。