如何将主机名解析为节点js中的IP地址

时间:2016-04-18 08:59:56

标签: javascript node.js ip-address hostname hosts

我需要将hosts文件中定义的主机名解析为相应的IP地址。

例如我的主机文件看起来像这样 - “/ etc / hosts”

127.0.0.1    ggns2dss81 localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6
192.168.253.8    abcdserver
192.168.253.20   testwsserver

现在在我的node.js中,我可以阅读此文件的内容,但我需要获取给定的hostname

hostname = "testwsserver"
hostIP = getIP(hostname);
console.log(hostIP); // This should print 192.168.253.20

PS - npm pkg或任何第三方软件包都无法在计算机上安装。

非常感谢帮助!!

2 个答案:

答案 0 :(得分:18)

NodeJS documentation - DNS怎么样 - 你检查了吗?

const dns = require('dns')

dns.lookup('testwsserver', function(err, result) {
  console.log(result)
})

答案 1 :(得分:2)

只需以 Krzysztof Safjanowski 的答案为基础,

您还可以使用内置的 promisify 实用程序将其转换为Promise,而不是回调。

const util = require('util');
const dns = require('dns');
const lookup = util.promisify(dns.lookup);

try {
  result = await lookup('google.com')
  console.log(result)
} catch (error) {
  console.error(error)
}