我正在node.js中构建一个DNS记录检查器,并使用native-dns ,一个扩展 native Node 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
并将单个请求缓存设置为 false,如下所示:
var dnsReq = dns.Request({
header: {aa: 1},
question: question,
server: {address: '8.8.8.8'},
cache: false
})
这两种方法都不会返回静态的、权威的 ttl。有谁知道与上面的 dig 命令等效的 node.js 吗?或者获取权威 ttl 值的不同方式,也许是另一个包或从 Node 执行 dig 命令并解析结果(呃)?
最佳答案
为了(可靠地)获取记录的权威 TTL 值,您必须询问该记录的权威名称服务器。带有 +trace
标志的 dig
通过从根向下递归(并向您显示步骤)来实现这一点。我不知道是否有一个 node.js 库可以为你做到这一点。如果没有并且您想自己实现它,您需要阅读 RFC 1034 ,特别是第 4.3.2 节。
关于node.js - 如何在node.js中获取CNAME记录的权威TTL值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028849/