共计 1987 个字符,预计需要花费 5 分钟才能阅读完成。
Node.js DNS 模块用于解析域名
办法
dns.lookup(hostname[, options], callback)
将域名(比方 ‘runoob.com’)解析为第一条找到的记录 A(IPV4)或 AAAA(IPV6)。参数 options 能够是一个对象或整数。如果没有提供 options,IP v4 和 v6 地址都能够。如果 options 是整数,则必须是 4 或 6。
const dns = require('node:dns')
dns.lookup('www.baidu.com', (err, address, family) => {console.log('address: %j family: IPv%s', address, family);
// address: "14.119.104.189" family: IPv4
});
dns.lookupService(address, port, callback)
应用 getnameinfo 解析传入的地址和端口为域名和服务。
dns.resolve(hostname[, rrtype], callback)
将一个域名(如 ‘nodejs.org’)解析为一个 rrtype 指定记录类型的数组.
dns.reverse(ip, callback)
反向解析 IP 地址,指向该 IP 地址的域名数组。
留神:不是每个 IP 地址都有反向 DNS。有时这是成心的,最常见的是,因为多个域名映射到同一个 IP 地址。
rrtype |
records contains |
Result type | Shorthand method |
---|---|---|---|
'A' |
IPv4 addresses (default) | <string> | dns.resolve4() |
'AAAA' |
IPv6 addresses | <string> | dns.resolve6() |
'ANY' |
any records | <Object> | dns.resolveAny() |
'CAA' |
CA authorization records | <Object> | dns.resolveCaa() |
'CNAME' |
canonical name records | <string> | dns.resolveCname() |
'MX' |
mail exchange records | <Object> | dns.resolveMx() |
'NAPTR' |
name authority pointer records | <Object> | dns.resolveNaptr() |
'NS' |
name server records | <string> | dns.resolveNs() |
'PTR' |
pointer records | <string> | dns.resolvePtr() |
'SOA' |
start of authority records | <Object> | dns.resolveSoa() |
'SRV' |
service records | <Object> | dns.resolveSrv() |
'TXT' |
text records | [<string[]>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_…) | dns.resolveTxt() |
dns.getServers()
返回一个用于以后解析的 IP 地址数组的字符串。即返回以后主机默认网关 ip 地址列表
console.log(dns.getServers())
// ['192.168.42.129', '192.168.8.1']
dns.setServers(servers)
指定一组 IP 地址作为域名解析服务器。
错误码(Error codes)
每个 DNS 查问能够返回以下错误码之一:
dns.NODATA
: 无数据响应。dns.FORMERR
: 查问格局谬误。dns.SERVFAIL
: 惯例失败。dns.NOTFOUND
: 没有找到域名。dns.NOTIMP
: 未实现申请的操作。dns.REFUSED
: 回绝查问。dns.BADQUERY
: 查问格局谬误。dns.BADNAME
: 域名格局谬误。dns.BADFAMILY
: 地址协定不反对。dns.BADRESP
: 回复格局谬误。dns.CONNREFUSED
: 无奈连贯到 DNS 服务器。dns.TIMEOUT
: 连贯 DNS 服务器超时。dns.EOF
: 文件末端。dns.FILE
: 读文件谬误。dns.NOMEM
: 内存溢出。dns.DESTRUCTION
: 通道被捣毁。dns.BADSTR
: 字符串格局谬误。dns.BADFLAGS
: 非法标识符。dns.NONAME
: 所给主机不是数字。dns.BADHINTS
: 非法 HINTS 标识符。dns.NOTINITIALIZED
: c c-ares 库尚未初始化。dns.LOADIPHLPAPI
: 加载 iphlpapi.dll 出错。dns.ADDRGETNETWORKPARAMS
: 无奈找到 GetNetworkParams 函数。dns.CANCELLED
: 勾销 DNS 查问。
正文完