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

chi*_*uit 1 python dns networking

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

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

host myhostname.mydomain.com
Run Code Online (Sandbox Code Playgroud)

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

socket.gethostbyaddr("myhostname.mydomain.com")
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

Chr*_*ung 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'])
Run Code Online (Sandbox Code Playgroud)