首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >whois.whois函数总是得到一个超时错误。

whois.whois函数总是得到一个超时错误。
EN

Stack Overflow用户
提问于 2019-10-24 12:42:49
回答 1查看 1.7K关注 0票数 0

whois.whois函数总是得到一个超时错误。起初,我认为这是因为我的项目是用Python2.7编写的,但我也签了3.7并得到了相同的错误。我检查了使用whois的在线网站上的地址,链接成功了,但没有收到这个错误。有人知道为什么会这样吗?

代码语言:javascript
复制
import whois

w = whois.whois("https://stackoverflow.com")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python37\lib\site-packages\whois\__init__.py", line 43, in whois
    text = nic_client.whois_lookup(None, domain.encode('idna'), flags)
  File "C:\Program Files\Python37\lib\site-packages\whois\whois.py", line 264, in whois_lookup
    result = self.whois(query_arg, nichost, flags)
  File "C:\Program Files\Python37\lib\site-packages\whois\whois.py", line 142, in whois
    s.connect((hostname, 43))
socket.timeout: timed out
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-26 19:45:08

您的代码至少有两个问题,您可能也有网络问题。

但是,它没有理由不在Python2上工作。

关于代码

这是非常好的:

代码语言:javascript
复制
In [7]: import whois

In [8]: print whois.query('stackoverflow.com').expiration_date
2020-02-02 11:59:59

注意两件事:

  • whois是关于域名的,而不是URL;所以您应该传递一个域名;更普遍地注意,对于新的工作,您应该查看RDAP而不是
  • ,因为您需要更好地体验
  • ,您需要使用whois.query而不是whois.whois (您并没有说您使用的是哪个版本的库,但在https://pypi.org/project/whois/上的文档页您可以清楚地看到它是whois.query,所以我不知道您的whois.whois`来自哪里)。

F 210

关于网络

显示一个网络错误。它不是100%清除,但您可能有或可能没有访问您想要查询的whois服务器。

简单的测试方法:只需使用与代码相同的框中的命令行whois (但再次使用域名,而不是URL作为参数),您将看到正在发生的事情。

您甚至可以直接在端口43上执行telnet操作,就像whois不做任何其他操作一样。

代码语言:javascript
复制
$ echo 'stackoverflow.com' | nc whois.verisign-grs.com 43 | grep 'Expiry'
   Registry Expiry Date: 2020-02-02T11:59:59Z
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58541665

复制
相关文章

相似问题

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