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 查詢。