4

我需要在每个查询中获取 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

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

4

1 回答 1

7

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

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

这基本上相当于完成了递归解析器的部分工作。

于 2013-06-06T19:19:54.310 回答