如何在node.js中获得CNAMElogging的权威TTL值?

我在node.js中构build了一个DNSlogging检查器,并使用native-dns (一个扩展本地节点DNSfunction的包)。

我想获得CNAME ttl的权威答案,您可以使用dig + trace获取答案:

dig +trace +nocmd +noall +answer +ttlid a www.google.com 

native-dns返回的ttl是一个caching的值,所以它随着时间的推移而减less并最终重置。 我已经尝试将平台caching设置为false,如下所示:

 var dns = require('native-dns') dns.platform.cache = false 

并将单个请求caching设置为false,如下所示:

 var dnsReq = dns.Request({ header: {aa: 1}, question: question, server: {address: '8.8.8.8'}, cache: false }) 

这两种方法都不会返回一个静态的,权威的ttl。 有没有人知道一个node.js相当于上面的dig命令? 或者获得权威的ttl值的另一种方式,可能是另一个包,或者从节点执行dig命令并parsing结果(ugh)?

为了(可靠地)获得logging的权威TTL值,您必须询问该logging的权威名称服务器。 dig +trace标志这样做,通过recursion从根(并显示您的步骤)。 我不知道是否有一个node.js库为你做。 如果没有,并且您想要自己实现,则需要阅读RFC 1034 ,尤其是第4.3.2节。