Python DNS解析器和原始TTL

Ale*_*sev 3 python dns dnspython ttl

我需要在每个查询中获取DNS记录的原始TTL。DNS解析器仅在第一次查询时显示原始ttl。它显示了在每个下一个查询上重置缓存的时间。

>>> answer = dns.resolver.query('www.stackoverflow.com')
>>> print answer.rrset.ttl
300
>>> answer = dns.resolver.query('www.stackoverflow.com')
>>> print answer.rrset.ttl
292
Run Code Online (Sandbox Code Playgroud)

如何在任何查询中获取原始TTL?

Cel*_*ada 5

您只能通过直接查询权威服务器来获取原始TTL。这不是特定于Python的。

  1. 通过查询NS所需名称的记录来找出一组权威名称服务器。如果找不到该名称的NS记录,则删除第一个标签并再次查询(查询父域)。递归重复直到获得一些NS记录。
  2. 获得NS记录后,直接向那些名称服务器查询原始请求的名称。如果这些名称服务器中的一个或多个没有响应,请查询列表中的下一个。

这基本上等效于完成递归解析器的一部分工作。