首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js dns.resolve没有返回正确的IP地址

问Node.js dns.resolve没有返回正确的IP地址
EN

Stack Overflow用户
提问于 2018-06-11 03:18:02
回答 1查看 1.2K关注 0票数 2

我试图使用Node.js DNS解析查找属于我的域的IP地址(让我们称之为host.mydomain.com)。如果host.mydomain.com的查找是从host.mydomain.com实际指向的服务器完成的,它将返回服务器的本地NIC地址(192.168.0.10),而不是服务器的外部IP地址。

使用相同的代码从外部机器对host.mydomain.com进行主机查找,将返回预期的外部IP地址。更重要的是,我在另一个环境中有一个不同的服务器,称为host.otherdomain.com,它在使用相同的代码进行查找时会正确地返回自己的外部IP地址。

我的主机文件中没有任何东西可以覆盖这一点。这两个域都来自同一个DNS提供程序,而且都是通配符域。

我的代码:

代码语言:javascript
复制
var dns = require('dns');
dns.setServers([ "8.8.8.8", "8.8.4.4" ]);

domain="host.mydomain.com";

dns.resolve(domain, function (error, addresses) {
    console.log("Error: ", error);  // null
    console.log("DNS servers: ", dns.getServers());  // [ '8.8.8.8', '8.8.4.4' ]
    console.log(domain + " resolves to: ", addresses);  // [ '192.168.0.10' ]
});

我目前正在所有服务器上使用Node.js 6。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-27 02:57:35

在我的例子中,问题最终发生在机器所在的IBM数据中心。它运行在他们的工作人员已经设置的一个经过修改的vCenter设置上,并且正在用DNS做一些奇怪的事情。我知道vCenter有Linux集成,我不确定这是否是问题的一部分。

因此,简单地说,我认为解决方案是确保您的环境(在我的例子中是数据中心)不会给您带来麻烦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50790107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档