如何从Python中的IP地址获取NAPTR记录?

时间:2012-06-19 22:59:02

标签: python dns

我希望使用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

1 个答案:

答案 0 :(得分:1)

正如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