Python中的反向DNS查找
如果我有一个像2001:4860:4860::8888这样的IP地址 我如何获得格式为foo.ip6.arpa的完全限定域 编辑:到目前为止,这两个解决方案都给了我google-public-dns-a.google.com——也许反向dns的名称不对。为此,我希望使用dnspython的输出类似于8.8.8.8.0…等ip6.arpaPython中的反向DNS查找,python,ipv6,Python,Ipv6,如果我有一个像2001:4860:4860::8888这样的IP地址 我如何获得格式为foo.ip6.arpa的完全限定域 编辑:到目前为止,这两个解决方案都给了我google-public-dns-a.google.com——也许反向dns的名称不对。为此,我希望使用dnspython的输出类似于8.8.8.8.0…等ip6.arpa from dns import resolver,reversename addr=reversename.from_address("2001:4860:48
from dns import resolver,reversename
addr=reversename.from_address("2001:4860:4860::8888")
str(resolver.query(addr,"PTR")[0])
提供所需的方法:
>>> from IPy import IP
>>> ip = IP('127.0.0.1')
>>> ip.reverseName()
'1.0.0.127.in-addr.arpa.'
适用于IPv4和IPv6,尽管最初的IPy在IPv6方面有一些缺陷。我创建了一个带有一些扩展和修复的fork,只要这些修复没有被合并回原始代码,您就可以使用它
更新:
当然,您也可以使用内置的socket
模块:
>>> import socket
>>> socket.getnameinfo(('2001:4860:4860::8888', 0), 0)
('google-public-dns-a.google.com', '0')
>>> socket.getnameinfo(('127.0.0.1', 0), 0)
('localhost', '0')
您需要提供一个主机+端口元组,但您可以为端口提供
0
,然后您将获得主机名。尽管问题经过编辑,但我认为答案是正确的。但是没有能够返回.ip6.arpa
格式的标准模块吗?