Я пытаюсь использовать DNS-решение Node.js для поиска IP-адреса принадлежащего мне домена (назовем его host.mydomain.com).Если поиск host.mydomain.com
выполняется с сервера, на который фактически указывает host.mydomain.com, он возвращает локальный 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 на всех серверах.