📅  最后修改于: 2023-12-03 15:33:11.419000             🧑  作者: Mango
Node.js 的 dns
模块提供了一些 API 用于解析域名和设置 DNS 属性。
可以使用 dns
模块中的 lookup
方法来解析域名。这个方法接收三个参数:hostname
、options
和一个回调函数。
const dns = require('dns');
dns.lookup('www.example.com', (err, address, family) => {
console.log('IP 地址: %j 地址族: IPv%s', address, family);
});
在以上示例中,回调函数的第一个参数 err
用于传递错误信息(如果存在的话),第二个参数 address
是解析得到的 IP 地址,第三个参数 family
是地址族,它可能是 4
或 6
之一。
如果想要指定 DNS 服务器进行域名解析,可以传递 options
参数。这是一个对象,它可以包含以下属性:
family
:可选值为 4
或 6
,指定解析得到的 IP 地址的地址族。默认值为 null
,表示自动选择。hints
:要使用的协议族。可选值包括 dns.ADDRCONFIG
、dns.V4MAPPED
和 dns.ALL
。默认值为 null
。示例:
const dns = require('dns');
const options = {
family: 4,
hints: dns.ADDRCONFIG | dns.V4MAPPED,
};
dns.lookup('www.example.com', options, (err, address, family) => {
console.log('IP 地址: %j 地址族: IPv%s', address, family);
});
使用 dns
模块中的 setServers
方法来设置 DNS 服务器。它接收一个 IP 地址或一个 IP 地址数组作为参数。示例:
const dns = require('dns');
dns.setServers([
'8.8.8.8',
'8.8.4.4',
]);
dns.lookup('www.example.com', (err, address, family) => {
console.log('IP 地址: %j 地址族: IPv%s', address, family);
});
在以上示例中,setServers
方法设置了 Google 的公共 DNS 服务器。这时,lookup
方法将使用这些 DNS 服务器来解析 www.example.com
的 IP 地址。
注意,setServers
方法必须在调用 lookup
之前调用。