简体   繁体   English

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

[英]How do I grab a NAPTR record from an IP address in Python?

I'm looking to do something like this in python using dnspython: 我想在python中使用dnspython做这样的事情:

 dig @XXX.YYY.ZZZ.AAA -p 99 +short '1.1.1.1.1.1.1.1.1.1.1.e164.arpa' naptr

I thought dns.resolver.query would be the way to go, but it seems to choke on the IP address. 我认为dns.resolver.query是要走的路,但它似乎扼杀了IP地址。

My code: 我的代码:

for rdata in dns.resolver.query('XXX.YYY.ZZZ.AAA', 'NAPTR') :
print rdata.target

Output from running the code: 运行代码的输出:

  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

As OXC pointed out, your code is querying for the NAPTR record for XXX.YYY.ZZZ.AAA which is not the equivalent to your dig command. 正如OXC所指出的那样,您的代码正在查询XXX.YYY.ZZZ.AAA的NAPTR记录,这与您的dig命令不同。

Here is code that more closely matches your dig command: 这是与您的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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM