Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的反向DNS查找_Python_Ipv6 - Fatal编程技术网

Python中的反向DNS查找

Python中的反向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

如果我有一个像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: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
格式的标准模块吗?