我正在尝试使用Node.js DNS resolve查找属于我的域的IP地址(我们称之为host.mydomain.com)。如果从host.mydomain.com实际指向的服务器查找host.mydomain.com
,则返回服务器的本地NIC IP地址(192.168.0.10
)而不是服务器的外部IP地址。
使用相同的代码从外部计算机执行host.mydomain.com
的主机查找会返回预期的外部IP地址。更重要的是,我在另一个环境中有一个不同的服务器,称之为host.otherdomain.com
,它在执行查找时使用相同的代码正确返回自己的外部IP地址。
我的hosts文件中没有任何内容可以覆盖它。这两个域都来自同一个DNS提供商,都是通配符域。
我的代码:
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.