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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。