小编Mox*_*Mox的帖子

尽管有查询答案,dnspython仍然会提出NoAnswer

当我使用dnspython查询权威名称服务器的NS记录时,它会引发NoAnswer异常,尽管我的数据包捕获表明收到了正确的响应.

示例:请求j.gtld-servers.net(192.48.79.30)获取stackoverflow.com的NS记录

>>> import dns.resolver
>>> r = dns.resolver.Resolver()
>>> r.nameservers = ['192.48.79.30']
>>> for answer in r.query('stackoverflow.com', 'NS'):
...     print answer.to_text()
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/dns/resolver.py", line 905, in query
    raise_on_no_answer)
  File "/usr/local/lib/python2.7/dist-packages/dns/resolver.py", line 142, in __init__
    raise NoAnswer
dns.resolver.NoAnswer
>>>
Run Code Online (Sandbox Code Playgroud)

Wireshark显示答案确实回来了:

Frame 2: 157 bytes on wire (1256 bits), 157 bytes captured (1256 bits)
Ethernet II, Src: xxxxxxxxxxxxxx (xx:xx:xx:xx:xx:xx), Dst: xxxxxxxxxxxxx (xx:xx:xx:xx:xx:xx)
Internet Protocol Version 4, Src: 192.48.79.30 (192.48.79.30), …
Run Code Online (Sandbox Code Playgroud)

dns dnspython python-2.7

1
推荐指数
1
解决办法
4031
查看次数

标签 统计

dns ×1

dnspython ×1

python-2.7 ×1