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 查询。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。