【问题标题】:How do I grab a NAPTR record from an IP address in Python?如何从 Python 中的 IP 地址获取 NAPTR 记录?
【发布时间】:2012-06-19 22:59:01
【问题描述】:

我希望在 python 中使用 dnspython 做这样的事情:

 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

【问题讨论】:

  • 以什么方式阻塞IP?
  • 向问题添加代码和错误。
  • 在我看来,您查询的是您的域名服务器,而不是您的目标 IP。

标签: python dns


【解决方案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

【讨论】:

    猜你喜欢
    • 2011-06-05
    • 2013-09-23
    • 2018-03-11
    • 2021-01-28
    • 2018-07-14
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多