我正在使用dns.resolveAny函数来检查一些域的域名信息。
我发现奇怪的一件事是,对于某些域,nslookup命令不返回空数组,而dns.resolveAny返回空数组。
下面是一个例子:
// node.js version >= 9.2 is required
const dns = require('dns')
dns.resolveAny('www.ifshop.com.tw', (err, ret) => {
if (err) {
console.log(`err: ${err}`)
} else {
console.log(`ret: ${JSON.stringify(ret)}`) // JSON.stringify(ret) == [] here
}
})resolveAny返回[]。但是nslookup成功地返回了www.ifshop.com.tw的CNAME记录。
> nslookup www.ifshop.com.tw
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
www.ifshop.com.tw canonical name = s1759.dname.91app.io.
s1759.dname.91app.io canonical name = proxy.letssl.91app.io.
proxy.letssl.91app.io canonical name = proxy-letssl-91app-io-196811564.ap-northeast-1.elb.amazonaws.com.
Name: proxy-letssl-91app-io-196811564.ap-northeast-1.elb.amazonaws.com
Address: 54.178.248.57
Name: proxy-letssl-91app-io-196811564.ap-northeast-1.elb.amazonaws.com
Address: 52.196.80.17这一切为什么要发生?
这是resolveAny的错误吗?
或者是www.ifshop.com.tw的DNS配置有问题?
我还发现dns.resolveCname成功地返回了CNAME。
// node.js version >= 9.2 is required
const dns = require('dns')
dns.resolveCname('www.ifshop.com.tw', (err, ret) => {
if (err) {
console.log(`err: ${err}`)
} else {
console.log(`ret: ${JSON.stringify(ret)}`)
}
})这里,JSON.stringify(ret)等于["s1759.dname.91app.io"]。
https://stackoverflow.com/questions/47492479
复制相似问题