當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。