【node】DNS

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) dns.resolve4()
'AAAA' IPv6 addresses dns.resolve6()
'ANY' any records dns.resolveAny()
'CAA' CA authorization records dns.resolveCaa()
'CNAME' canonical name records dns.resolveCname()
'MX' mail exchange records dns.resolveMx()
'NAPTR' name authority pointer records dns.resolveNaptr()
'NS' name server records dns.resolveNs()
'PTR' pointer records dns.resolvePtr()
'SOA' start of authority records dns.resolveSoa()
'SRV' service records dns.resolveSrv()
'TXT' text records [](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 查询。

你可能感兴趣的:(node.jsdns)