socket.getaddrinfo引发了“未知主机”之谜

时间:2010-09-02 01:45:52

标签: python networking dns

我在使用python(2.6.2)套接字类解析主机名时遇到问题。

从shell我可以ping主机名,并使用host命令解析主机名:

host myhostname.mydomain.com

当我尝试使用python解决它时,会引发一个socket.herror异常,并显示消息“[Errno 1] Unknown host”

socket.gethostbyaddr("myhostname.mydomain.com")

我最近在resolv.conf中添加了名称服务器,也许我需要为python重新启动一些东西才能看到这些更新?

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

您需要使用gethostbyname,而不是gethostbyaddr(反向查找)。

>>> socket.gethostbyname('car.spillville.com')
'209.20.76.192'
>>> socket.gethostbyaddr('209.20.76.192')
('car.spillville.com', [], ['209.20.76.192'])