dns.lookup()方法是dns模块的内置应用程序编程接口,用于将给定参数的指定主机名的IP地址解析为第一个找到的A(IPv4)或AAAA(IPv6)记录。
用法:
dns.lookup( hostname, options, callback )
参数:此方法具有上述和以下所述的三个参数:
- hostname:此参数指定一个字符串,该字符串表示要检查的主机名。
- options:它采用整数或对象的形式。它指定在查找期间要使用的选项。
- family:它是一个整数值,指定记录的族。该值必须为4、6或0,其中0表示返回IPv4和IPv6值,4表示返回IPv4,6表示返回IPv6。其默认值为0。
- hints:它是一个数字,指定一个或多个getaddrinfo标志。通过对其值进行按位或运算,可以传递多个标志。
- all:它是一个布尔参数。如果将其设置为TRUE,则回调函数将返回数组中所有已解析的地址,否则将返回单个地址。其默认值为FALSE。
- verbatim:它是一个布尔参数。如果将其值设置为TRUE,则回调将获得DNS解析器返回的所有已解析的IPv4和IPv6地址(无序)。如果设置为FALSE,则将IPv4地址放在IPv6地址之前。现在的默认值为FALSE,但预计不久后将为TRUE。
- callback:它指定完成主机名的DNS解析后要调用的函数。
- error:如果生成,则指定错误。例如,如果主机名不存在或查找失败,则设置为“ ENOTFOUND”。
- address:它是IPv4和IPv6地址的字符串表示形式。
- family:它是一个整数值,指定记录的族。该值必须为4、6或0,其中0表示它不是IPv4或IPv6地址。 0表示操作系统使用的名称解析服务中的故障。
返回值:此方法通过回调函数返回错误,IP地址族和IP地址。这些数据作为参数传递给回调函数。
以下示例说明了Node.js中dns.lookup()方法的使用:
范例1:
// Node.js program to demonstrate the
// dns.lookup() method
// Accessing dns module
const dns = require('dns');
// Setting options for dns.lookup() method
const options = {
// Setting family as 6 i.e. IPv6
family:6,
hints:dns.ADDRCONFIG | dns.V4MAPPED,
};
// Calling dns.lookup() for hostname geeksforgeeks.org
// and displaying them in console as a callback
dns.lookup('geeksforgeeks.org', options, (err, address, family) =>
console.log('address:%j family:IPv%s', address, family));
Output:
address:"fd00:0:13:13::22da:3e74" family:IPv6
范例2:
// Node.js program to demonstrate the
// dns.lookup() method
// Accessing dns module
const dns = require('dns');
// Setting options for dns.lookup()
// method, all as true
const options = {
all:true,
};
// Calling dns.lookup() for hostname
// geeksforgeeks.org and displaying
// them in console as a callback
dns.lookup('geeksforgeeks.org', options, (err, addresses) =>
console.log('addresses:%j', addresses));
输出:
addresses:[ {"address":"34.218.62.116","family":4}, {"address":"fd00:0:13:13::22da:3e74","family":6} ]
注意:上面的程序将通过使用node index.js
命令。
参考: https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback
相关用法
注:本文由纯净天空筛选整理自gekcho大神的英文原创作品 Node.js | dns.lookup() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。