📜  Node.js dns.lookup() 方法(1)

📅  最后修改于: 2023-12-03 15:33:08.682000             🧑  作者: Mango

Node.js dns.lookup() 方法

Node.js dns.lookup() 方法是一个简单的 DNS 查找功能,它将一个主机名转换为其对应的 IP 地址,或者将一个 IP 地址转换为其对应的主机名。它是 Node.js 内置的一个模块,无需额外安装。

语法
dns.lookup(hostname[, options], callback)

参数说明:

  • hostname:一个字符串类型的主机名或者 IP 地址。
  • options:一个可选的对象参数,包含以下属性:
    • family:指定 IP 地址的类型,只能为 4 或者 6,分别代表 IPv4 和 IPv6 地址。默认为 4。
    • hints:一个数值,指定要使用的地址信息(address information)的类型。可以为以下值之一:
      • dns.ADDRCONFIG:只有 IPv4 或者 IPv6 地址都在主机上可用时使用。这是默认值。
      • dns.V4MAPPED:如果没有 IPv6 地址,则使用映射到 IPv6 的 IPv4 地址。
      • dns.ALL:如果有多个地址则返回所有的地址。
  • callback:一个回调函数,它有两个参数,第一个参数为错误对象,第二个参数为转换后的 IP 地址(或者主机名)。
示例

以下是一个 Node.js dns.lookup() 方法的示例:

const dns = require('dns');

dns.lookup('www.google.com', (err, address) => {
  if (err) throw err;
  console.log(`IP 地址为: ${address}`);
});

dns.lookup('8.8.8.8', (err, hostname) => {
  if (err) throw err;
  console.log(`主机名为: ${hostname}`);
});

在以上示例中,我们分别将主机名 www.google.com 和 IP 地址 8.8.8.8 转换为其对应的 IP 地址和主机名。

如果执行成功,将会输出如下内容:

IP 地址为: 172.217.168.100
主机名为: dns.google
结语

Node.js dns.lookup() 方法提供了一个简单、便捷的方式将主机名和 IP 地址之间进行转换。它基于 DNS 协议实现,可以帮助我们更好地理解和使用 DNS 服务器。