我正在寻找使用 dnspython 在 python 中做这样的事情:
dig @XXX.YYY.ZZZ.AAA -p 99 +short '1.1.1.1.1.1.1.1.1.1.1.e164.arpa' naptr
我认为 dns.resolver.query 是可行的方法,但它似乎在 IP 地址上令人窒息。
我的代码:
for rdata in dns.resolver.query('XXX.YYY.ZZZ.AAA', 'NAPTR') :
print rdata.target
运行代码的输出:
Traceback (most recent call last):
File "...\src\dnslookup.py", line 12, in <module>
for rdata in dns.resolver.query('XXX.YYY.ZZZ.AAA', 'NAPTR') :
File "build\bdist.win-amd64\egg\dns\resolver.py", line 920, in query
File "build\bdist.win-amd64\egg\dns\resolver.py", line 856, in query
dns.resolver.NXDOMAIN
最佳答案
正如 OXC 所指出的,您的代码正在查询 XXX.YYY.ZZZ.AAA 的 NAPTR 记录,这不等同于您的 dig 命令。
这是与您的 dig 命令更匹配的代码:
resolver = dns.resolver.Resolver()
resolver.nameservers = ['XXX.YYY.ZZZ.AAA']
resolver.port = 99
resolver.query('1.1.1.1.1.1.1.1.1.1.1.e164.arpa', 'NAPTR')
# Need to confirm syntax for NAPTR query
关于python - 如何从 Python 中的 IP 地址获取 NAPTR 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110670/