首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Whois服务器查询2~3次后屏蔽我的ip地址

Whois服务器查询2~3次后屏蔽我的ip地址
EN

Stack Overflow用户
提问于 2013-04-12 16:50:39
回答 3查看 3.9K关注 0票数 5

我正在写一个网站的域名检查器,但我面临有趣的问题。

一些whois服务器负责像.WS (whois.worldsite.ws)或.CA (whois.cira.ca)这样的域名,每天查询2到3次后拦截ip地址!

对于一个每天可能有数百万次请求托管网站来说,这看起来像是一场灾难。

我应该怎么做才能解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2013-05-30 03:05:55

相反,有一种非常简单的方法可以绕过它。

如前所述,如果认为您在24小时内发出的请求太多,大多数whois当局将限制(甚至阻止)您的流量,相反,您可能想要考虑登录到全球任何whois提供商的ftp站点并下载数据库的各个部分,然后编写(或找到)您自己的脚本来处理它们。

我目前使用自己的一台服务器这样做,它使用以下shell脚本连接(每24小时一次):

代码语言:javascript
复制
#!/bin/bash
rm -f delegated-afrinic-latest
rm -f delegated-lacnic-latest
rm -f delegated-arin-latest
rm -f delegated-apnic-latest
rm -f delegated-ripencc-latest
rm -f ripe.db.inetnum
rm -f apnic.db.inetnum
rm -f ripe.db.inetnum.gz
rm -f apnic.db.inetnum.gz
wget ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
wget ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
wget ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
wget ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
wget ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest
wget ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.inetnum.gz
ftp -n -v ftp.apnic.net <<END
user anonymous anonymous@anonymous.org
binary
passive
get /apnic/whois-data/APNIC/split/apnic.db.inetnum.gz apnic.db.inetnum.gz
bye
END
gunzip ripe.db.inetnum
gunzip apnic.db.inetnum

然后我有一个自定义编写的程序,它将文件解析到一个自定义的数据库结构中,然后我的服务器从这个结构中进行查询。

由于所有服务器都相互镜像数据,因此您应该能够从一台服务器获得完整的数据集,但如果不是这样,那么修改上面的shell脚本就可以从其他服务器下载数据,所有这些服务器都会响应“ftp。?”并且具有相同的通用文件夹结构。

我不能帮助你解析器,然而,因为它包含专有代码,但文件格式(特别是如果你得到分割的文件)是相同的,你在一个典型的whois输出中看到的,所以它很容易使用。

google-code上有一个解析器(这就是我下载脚本的地方),叫做'ip-country‘(我想),它的设计是为了让你可以构建自己的whois数据库,我构建的那个稍微复杂一些,因为它也与其他数据结合在一起(所以我的解析器是专有的)。

通过这样下载和处理您自己的数据,您可以绕过提供商施加的任何限制,结果是查询您自己的数据存储的速度最有可能比每次有人输入IP地址时从您的服务器向查询服务器发出请求快得多。

票数 13
EN

Stack Overflow用户

发布于 2013-04-13 18:33:40

没有简单的方法可以绕过这一点。您已经发现,一些whois服务器会在几次查询后阻塞您的程序。你通常可以向他们支付一定数量的查询费用。还有另一种方法可能会奏效。由于阻塞是通过IP地址完成的,因此您可以编写一个Java applet来运行查询。这样,限制将在用户上,因此用户将被限制为每天2-3次查询,而不是网站。必须对Java小程序进行签名才能允许网络访问。我用java写了一个whois库,可能对JFreeWhois有帮助。

票数 1
EN

Stack Overflow用户

发布于 2016-07-04 16:19:09

您应该了解错误消息模式,并在休眠后尝试重复查询。如果它不工作,那么使用不同的Whois服务器。当您为网站编写应用程序时,Whois查询应该从客户端完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15966931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档