Python在1秒超时内从IP查找主机名

66 投票
2 回答
127272 浏览
提问于 2025-04-15 21:13

我该怎么根据一个IP地址查找对应的主机名呢?另外,如果没有这样的反向DNS记录,我怎么能设置一个超时时间呢?我想尽量让这个过程快一点。或者有没有更好的方法?谢谢!

2 个回答

22

你想要做的事情叫做反向DNS查找。

socket.gethostbyaddr("IP") 
# => (hostname, alias-list, IP)

http://docs.python.org/library/socket.html?highlight=gethostbyaddr#socket.gethostbyaddr

不过,我听说在处理超时问题时,有些人遇到了一些麻烦。你可以看看PyDNS或者这个解决方案,它们提供了更高级的处理方法。

109
>>> import socket
>>> socket.gethostbyaddr("69.59.196.211")
('stackoverflow.com', ['211.196.59.69.in-addr.arpa'], ['69.59.196.211'])

如果你想给一个函数设置超时时间,可以参考这个StackOverflow的讨论,里面有相关的解答。

撰写回答