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

标签 node.js caching dns cname ttl

我正在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/

相关文章:

javascript - Express-generator、Socket.io 事件多次发出

javascript - Express:在子路由上提供 Webpack 包

c - 结构体中的整型数组

azure - 更改azure应用程序服务的IP地址

node.js - 页面在继续之前不会等待另一个页面完成其任务

javascript - 带有 Gmail 和 NodeJS 的 Nodemailer

css - Woocommerce 产品页面空白?

google-chrome - Chrome 内存缓存与磁盘缓存

sockets - Linux中AF_UNIX数据报消息的最大大小是多少?

azure - Azure 网站支持的最大域数