Nodejs dns 模块


Nodejs dns 模块

http://nodejs.cn/api/dns.html

dns 模块包含两类函数:

  • 第一类函数,使用底层操作系统工具进行域名解析,且无需进行网络通信。 这类函数只有一个:dns.lookup()。
1
2
3
4
5
6
7
const dns = require('dns');

dns.lookup('iana.org', (err, address, family) => {
console.log('IP 地址: %j 地址族: IPv%s', address, family);
});

// IP 地址: "192.0.43.8" 地址族: IPv4
  • 第二类函数,连接到真实的 DNS 服务器进行域名解析,且始终使用网络进行 DNS 查询。 这类函数包含了 dns 模块中除 dns.lookup() 以外的所有函数。 这些函数使用与 dns.lookup() 不同的配置文件(例如 /etc/hosts)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const dns = require('dns');

dns.resolve4('archive.org', (err, addresses) => {
if (err) throw err;

console.log(`IP 地址: ${JSON.stringify(addresses)}`);

addresses.forEach((a) => {
dns.reverse(a, (err, hostnames) => {
if (err) {
throw err;
}
console.log(`IP 地址 ${a} 逆向解析到域名: ${JSON.stringify(hostnames)}`);
});
});
});