Node.js dns.resolve() 方法
dns.resolve() 方法是 dns 模块的内置应用程序编程接口,用于将主机名解析为资源记录数组。
句法:
dns.resolve( hostname, rrtype, callback )
参数:此方法接受三个参数,如上所述,如下所述:
- 主机名:此参数指定一个字符串,表示要解析的主机名。
- rrtype:指定资源记录类型。它的默认值为“A”。记录列表('A'、'AAAA'、'ANY'、'CNAME'、'MX'、'TXT'、'NS'、'NAPTR'、'PTR'、'SOA'、'SRV')是如下面所描述的:
- 答: IPv4地址
- AAAA: IPv6 地址
- ANY:任何记录
- CNAME:规范名称记录
- MX:邮件交换记录
- NAPTR:名称权限指针记录
- NS:名称服务器记录
- PTR:指针记录
- SOA:权限记录的开始
- SRV:服务记录
- TXT:文本记录
- callback:指定DNS解析主机名后调用的函数。
- 错误:如果生成则指定错误。
- 记录:它是表示返回记录的字符串或对象。
返回值:该方法返回错误,通过回调函数记录,这些数据作为参数传递给回调函数。
下面的例子说明了 Node.js 中 dns.resolve() 方法的使用:
示例 1:
// Node.js program to demonstrate the // dns.resolve() method // Accessing dns module const dns = require('dns'); // Set the rrtype for dns.resolve() method const rrtype="A"; // Calling dns.resolve() method for hostname // geeksforgeeks.org and print them in // console as a callback dns.resolve('geeksforgeeks.org', rrtype, (err, records) => console.log('records: %j', records));
输出:
records: ["34.218.62.116"]
示例 2:
// Node.js program to demonstrate the // dns.resolve() method // Accessing dns module const dns = require('dns'); // Set the rrtype for dns.resolve() method const rrtype="MX"; // Calling dns.resolve() method for hostname // geeksforgeeks.org and print them in // console as a callback dns.resolve('geeksforgeeks.org', rrtype, (err, records) => console.log('records: %j', records));
输出:
records: [ {"exchange":"alt1.aspmx.l.google.com", "priority":5}, {"exchange":"alt2.aspmx.l.google.com", "priority":5}, {"exchange":"aspmx.l.google.com", "priority":1}, {"exchange":"alt3.aspmx.l.google.com", "priority":10}, {"exchange":"alt4.aspmx.l.google.com", "priority":10} ]
示例 3:
// Node.js program to demonstrate the // dns.resolve() method // Accessing dns module const dns = require('dns'); // Set the rrtype for dns.resolve() method const rrtype="TXT"; // Calling dns.resolve() method for hostname // geeksforgeeks.org and print them in // console as a callback dns.resolve('geeksforgeeks.org', rrtype, (err, records) => console.log('records: %j', records));
输出:
records: [ ["v=spf1 include:amazonses.com include:_spf.google.com -all"], ["fob1m1abcdp777bf2ncvnjm08n"] ]
示例 4:
// Node.js program to demonstrate the // dns.resolve() method // Accessing dns module const dns = require('dns'); // Set the rrtype for dns.resolve() method const rrtype="NS"; // Calling dns.resolve() method for hostname // geeksforgeeks.org and print them in // console as a callback dns.resolve('geeksforgeeks.org', rrtype, (err, records) => console.log('records: %j', records));
输出:
records: [ "ns-1520.awsdns-62.org", "ns-1569.awsdns-04.co.uk", "ns-245.awsdns-30.com", "ns-869.awsdns-44.net" ]
注意:以上程序将使用
node index.js
命令编译运行。参考: https://nodejs.org/api/dns.html#dns_dns_resolve_hostname_rrtype_callback