如果我有一个像2001:4860:4860 :: 8888的IP地址
如何以foo.ip6.arpa格式获取完全限定的域?
编辑:到目前为止,这两个解决方案都给我google-public-dns-a.google.com - 可能反向DNS是错误的名称.为此,我希望输出类似于8.8.8.8.0 ... etc.ip6.arpa
使用dnspython.
from dns import resolver,reversename
addr=reversename.from_address("2001:4860:4860::8888")
str(resolver.query(addr,"PTR")[0])
Run Code Online (Sandbox Code Playgroud)
IPy提供了你想要的方法:
>>> from IPy import IP
>>> ip = IP('127.0.0.1')
>>> ip.reverseName()
'1.0.0.127.in-addr.arpa.'
Run Code Online (Sandbox Code Playgroud)
适用于 IPv4 和 IPv6,尽管原始 IPy 对 IPv6 有一些错误。我在https://github.com/steffann/python-ipy创建了一个带有一些扩展和修复的 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')
Run Code Online (Sandbox Code Playgroud)
您需要提供一个主机+端口元组,但您可以提供0端口,并且您将获得主机名。
| 归档时间: |
|
| 查看次数: |
1941 次 |
| 最近记录: |