当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js dnsPromises.lookup(hostname[, options])用法及代码示例


dnsPromises.lookup(hostname[, options])

添加于:v10.6.0

参数
  • hostname <string>
  • options <integer>|<Object>
    • family <integer> 记录系列。必须是 4600 值表示同时返回 IPv4 和 IPv6 地址。 默认: 0
    • hints <number>一个或多个支持 getaddrinfo 标志.可以按位传递多个标志OR荷兰国际集团的值。
    • all <boolean>true 时,Promise 使用数组中的所有地址解析。否则,返回单个地址。 默认: false
    • verbatim <boolean>true 时,Promise 按照 DNS 解析器返回它们的顺序使用 IPv4 和 IPv6 地址进行解析。当 false 时,IPv4 地址放在 IPv6 地址之前。 默认: 当前为 false(地址已重新排序),但预计在不久的将来会发生变化。默认值可使用 dns.setDefaultResultOrder() --dns-result-order 进行配置。新代码应使用 { verbatim: true }

将主机名(例如 'nodejs.org' )解析为第一个找到的 A (IPv4) 或 AAAA (IPv6) 记录。所有option 属性都是可选的。如果 options 是整数,则它必须是 46 - 如果未提供 options,则如果找到,则返回 IPv4 和 IPv6 地址。

all 选项设置为 true 时,Promise 被解析为 addresses 是具有属性 addressfamily 的对象数组。

出错时,Promise 会被 Error 对象拒绝,其中 err.code 是错误代码。请记住,err.code 将设置为 'ENOTFOUND' 不仅在主机名不存在时,而且在查找因其他方式失败(例如没有可用的文件说明符)时。

dnsPromises.lookup() 不一定与 DNS 协议有关。该实现使用可以将名称与地址相关联的操作系统工具,反之亦然。这种实现会对任何 Node.js 程序的行为产生微妙但重要的影响。在使用 dnsPromises.lookup() 之前,请花一些时间查阅 Implementation considerations section

示例用法:

const dns = require('node:dns');
const dnsPromises = dns.promises;
const options = {
  family: 6,
  hints: dns.ADDRCONFIG | dns.V4MAPPED,
};

dnsPromises.lookup('example.com', options).then((result) => {
  console.log('address: %j family: IPv%s', result.address, result.family);
  // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6
});

// When options.all is true, the result will be an Array.
options.all = true;
dnsPromises.lookup('example.com', options).then((result) => {
  console.log('addresses: %j', result);
  // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]
});

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 dnsPromises.lookup(hostname[, options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。