dns.lookup(hostname[, options], callback)
| 版本 | 變化 | 
|---|---|
| v18.0.0 | 將無效回調傳遞給   | 
| v17.0.0 | 
  | 
| v8.5.0 | 現在支持  | 
| v1.2.0 | 現在支持  | 
| v0.1.90 | 添加於:v0.1.90  | 
參數
hostname<string>options<integer>|<Object>family<integer> 記錄係列。必須是4、6或0。0值表示同時返回 IPv4 和 IPv6 地址。 默認:0。hints<number>一個或多個支持getaddrinfo標誌.可以按位傳遞多個標誌OR荷蘭國際集團的值。all<boolean> 當true時,回調返回數組中的所有解析地址。否則,返回單個地址。 默認:false。verbatim<boolean> 當true時,回調按照 DNS 解析器返回的順序接收 IPv4 和 IPv6 地址。當false時,IPv4 地址放在 IPv6 地址之前。 默認:true(地址未重新排序)。默認值可使用或dns.setDefaultResultOrder()進行配置。--dns-result-order
callback<Function>
將主機名(例如 'nodejs.org' )解析為第一個找到的 A (IPv4) 或 AAAA (IPv6) 記錄。所有option 屬性都是可選的。如果 options 是整數,則它必須是 4 或 6 - 如果未提供 options,則如果找到,則返回 IPv4 和 IPv6 地址。
將 all 選項設置為 true 時,callback 的參數更改為 (err, addresses) ,其中 addresses 是具有屬性 address 和 family 的對象數組。
出錯時,err 是   對象,其中 Error err.code 是錯誤代碼。請記住,err.code 將設置為 'ENOTFOUND' 不僅在主機名不存在時,而且在查找因其他方式失敗(例如沒有可用的文件說明符)時。
dns.lookup() 不一定與 DNS 協議有關。該實現使用可以將名稱與地址相關聯的操作係統工具,反之亦然。這種實現會對任何 Node.js 程序的行為產生微妙但重要的影響。在使用 dns.lookup() 之前,請花一些時間查閱 Implementation considerations section。
示例用法:
const dns = require('node:dns');
const options = {
  family: 6,
  hints: dns.ADDRCONFIG | dns.V4MAPPED,
};
dns.lookup('example.com', options, (err, address, family) =>
  console.log('address: %j family: IPv%s', address, 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;
dns.lookup('example.com', options, (err, addresses) =>
  console.log('addresses: %j', addresses));
// addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]
如果此方法作為其   ed 版本調用,並且 util.promisify() all 未設置為 true ,則它將為具有 address 和 family 屬性的 Object 返回 Promise。
支持的 getaddrinfo 標誌#
| 版本 | 變化 | 
|---|---|
| v13.13.0、v12.17.0 | 添加了對   | 
以下標誌可以作為提示傳遞給   。dns.lookup() 
dns.ADDRCONFIG:將返回的地址類型限製為係統上配置的非環回地址類型。例如,僅當當前係統至少配置了一個 IPv4 地址時,才會返回 IPv4 地址。dns.V4MAPPED:如果指定了 IPv6 係列,但未找到 IPv6 地址,則返回 IPv4 映射的 IPv6 地址。某些操作係統不支持它(例如FreeBSD 10.1)。dns.ALL:如果指定了dns.V4MAPPED,則返回解析的 IPv6 地址以及 IPv4 映射的 IPv6 地址。
相關用法
- Node.js dns.lookup()用法及代碼示例
 - Node.js dns.lookupService(address, port, callback)用法及代碼示例
 - Node.js dns.lookupService()用法及代碼示例
 - Node.js dns.resolveNs()用法及代碼示例
 - Node.js dns.resolveCname()用法及代碼示例
 - Node.js dns.resolveSrv(hostname, callback)用法及代碼示例
 - Node.js dns.resolveSoa()用法及代碼示例
 - Node.js dns.resolve()用法及代碼示例
 - Node.js dns.resolveSoa(hostname, callback)用法及代碼示例
 - Node.js dns.resolveNaptr(hostname, callback)用法及代碼示例
 - Node.js dns.Resolver用法及代碼示例
 - Node.js dns.resolveTxt()用法及代碼示例
 - Node.js dns.resolveAny(hostname, callback)用法及代碼示例
 - Node.js dns.resolve4()用法及代碼示例
 - Node.js dns.resolve6()用法及代碼示例
 - Node.js dns.setServers(servers)用法及代碼示例
 - Node.js dns.resolveNaptr()用法及代碼示例
 - Node.js dns.resolveAny()用法及代碼示例
 - Node.js dns.getServers()用法及代碼示例
 - Node.js dns.resolveMx()用法及代碼示例
 - Node.js dns.resolvePtr()用法及代碼示例
 - Node.js dnsPromises.lookup()用法及代碼示例
 - Node.js dnsPromises.resolveMx()用法及代碼示例
 - Node.js dnsPromises.resolveTxt()用法及代碼示例
 - Node.js dnsPromises.resolve()用法及代碼示例
 
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 dns.lookup(hostname[, options], callback)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
