我正在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命令并解析结果(呃)?
答案 0 :(得分:1)
为了(可靠地)获取记录的权威TTL值,您必须询问该记录的权威名称服务器。带dig
标志的+trace
通过从根递归(并显示步骤)来做到这一点。我不知道是否有一个node.js库为你做这件事。如果没有并且您想自己实现它,则需要阅读RFC 1034,特别是第4.3.2节。