如何在node.js中获得CNAME记录的权威TTL值?

时间:2015-12-01 19:49:49

标签: node.js caching dns cname ttl

我正在node.js中构建DNS记录检查程序,并使用native-dns,这是一个扩展本机节点DNS功能的程序包。

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

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

native-dns返回的ttl是缓存值,因此随着时间的推移会减少并最终重置。我尝试将平台缓存设置为false,如下所示:

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

将单个Request缓存设置为false,如下所示:

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

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

1 个答案:

答案 0 :(得分:1)

为了(可靠地)获取记录的权威TTL值,您必须询问该记录的权威名称服务器。带dig标志的+trace通过从根递归(并显示步骤)来做到这一点。我不知道是否有一个node.js库为你做这件事。如果没有并且您想自己实现它,则需要阅读RFC 1034,特别是第4.3.2节。