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