首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dnspython -通过一个查询获取AAAA、A、NS和其他记录

dnspython -通过一个查询获取AAAA、A、NS和其他记录
EN

Stack Overflow用户
提问于 2013-03-25 16:07:06
回答 1查看 4.7K关注 0票数 6

我试图建立一个单一的域名解析所有DNS记录的快速脚本。“ANY”命令似乎可以解决这个问题,但是我在TTLs方面遇到了一些奇怪的问题。当使用任何像这样的

代码语言:javascript
复制
domain = dns.name.from_text(domain)
nameserver = '127.0.0.1'
query = dns.message.make_query(domain, dns.rdatatype.ANY)
response = dns.query.udp(query, nameserver, timeout = 2)
print response

返回的数据是我需要的,但是当TTL过期时,脚本不会返回过期的记录。“DIG domain ANY”命令似乎也有这个问题。

所以我的问题是,获取单个域的所有DNS记录的最快方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-25 18:29:03

任何查询的TTL问题都是DNS协议固有的。一旦缓存有了给定名称的一个RRtype,它将返回它已有的内容,以响应ANY查询,并且不会查询源以查看是否还有更多的are。RFC 2181对此有一个简短的讨论:

5.2。RRSet中RR的TTLs

资源记录也有生存时间(TTL)。RRSet中的RR可以具有不同的TTL。目前还没有发现可以通过其他方式更好地实现此功能的用途。然而,这可能会导致来自缓存服务器的部分回复(未标记为“截断”),其中RRSet中某些但不是所有RR的TTL已过期。

它实际上并不是说不鼓励在具有不同TTL的RRset中使用RR,但作者显然不太看重这一点。

因此,简短的答案是,鉴于ANY不能很好地工作,除了为每个RR类型发出一个您感兴趣的查询之外,没有其他解决方案。您可以通过并行执行所有这些查询来节省时间,这是有帮助的(但Python库可能并不容易做到这一点)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15610214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档