Python DNS解析器和原始TTL
我需要得到原始的TTL的dns记录在每个查询。 DNS解析器仅在第一次查询时显示原始ttl。它显示在每次下一次查询时重置缓存的时间Python DNS解析器和原始TTL,python,dns,ttl,dnspython,Python,Dns,Ttl,Dnspython,我需要得到原始的TTL的dns记录在每个查询。 DNS解析器仅在第一次查询时显示原始ttl。它显示在每次下一次查询时重置缓存的时间 >>> answer = dns.resolver.query('www.stackoverflow.com') >>> print answer.rrset.ttl 300 >>> answer = dns.resolver.query('www.stackoverflow.com') >>>
>>> 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?您只能通过直接查询权威服务器来获取原始TTL。这不是特定于Python的
NS
记录,找出权威名称服务器集是什么。如果未找到名称的NS记录,请删除第一个标签并再次查询(查询父域)。递归地重复,直到得到一些NS记录这基本上相当于执行递归解析器的部分工作。您需要在每次查询之间留出时间,最后一个DNS查询答案将在本地名称serverTry命令中存储20分钟(不确定)
dig www.google.com
注意中的输出;;回答部分:
您将在74.125.135.99中获得类似于:www.google.com.218的内容,这里218
意味着查询结果将在DNS数据库中的本地名称服务器上存储218
秒。反复尝试此命令,您会注意到218
将随着时间的推移而减少,当它减少到0
@GrijeshChauhan时,我知道。那么,获得原始ttl的最佳方法是什么?我不想在没有缓存的情况下部署自己的dns服务器来执行此任务。另一方面,没有缓存的dns服务器将非常慢。我不知道dns.resolver.query()
函数这个存储时间必须有一个返回参数,你必须给出两个连续调用函数之间的时间,我认为没有其他选择。提到这是重复递归解析器的工作似乎很重要