tmt*_*tmt 9 python whois python-3.x
如果任何TLD的域名已经注册或可用,我需要一种可靠的方法来检查Python .大胆的短语是我正在努力的关键点.
因为我不需要解析结果,所以我将代码从whois库中删除,并尝试通过自己调用Linux的whois来进行查询:
p = subprocess.Popen(['whois', 'example.com'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
r = p.communicate()[0]
print(r.decode())
Run Code Online (Sandbox Code Playgroud)
这样做效果更好.除了它不那么可靠.我尝试了一个特定的域名,并且"超出了您的连接限制.请放慢速度,稍后再试." 好吧,超出限制的不是我.在一个巨大的办公室里,在一个IP后面意味着其他人可能会在我进行查询之前达到极限.
已有类似的问题:
......但他们要么只处理一组有限的TLD,要么不会受到可靠性的困扰.
如果您没有特定的访问权限(例如作为注册商),并且如果您没有针对特定的 TLD(因为某些 TLD 确实具有称为域可用性的特定公共服务),则唯一有意义的工具是查询 whois 服务器。
那么你至少有以下两个问题:
对于第二点,通常的方法适用(在您这边处理延迟,使用多个端点等)
对于第一点,在我在这里的另一个回复中:https : //unix.stackexchange.com/a/407030/211833,您可以根据您使用的 whois 的包装器和一些对策来找到对您观察到的内容的一些解释。另请参阅我的其他回复:https : //webmasters.stackexchange.com/a/111639/75842,特别是第 2 点。
请注意,根据您的具体要求,如果您能够至少更改其中的一部分,您可能还有其他解决方案。例如,对于 gTLD,如果您容忍 24 小时延迟,您可以使用已发布的注册管理机构区域文件来查找已注册的域名(已发布的域名,而不是全部)。
此外,为什么您在一般意义上是正确的,使用第三方有其弱点,如果您找到一个有价值的注册商,既可以访问许多注册机构,又可以为您提供 API,然后您可以根据自己的需要使用它。
简而言之,我不相信您可以在所有情况下(100% 可靠性、100% TLD 等)完成这项任务。您将需要做出一些妥协,但这取决于您最初的需求。
同样非常重要的是:不要跑出去运行 whois 命令,这会造成许多安全和性能问题。使用您的编程语言中的适当库进行 whois 查询,或者只是在端口 43 上打开一个 TCP 套接字并在以 CR+LF 终止的一行上发送您的查询,读回一团文本,这基本上只是 RFC3912 中定义的内容.
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |