Мне нужно реализовать решение от WinApp
, написанное в C#
до PHP
. Мне нужно извлечь IP
на основе host name
. Ниже фрагмент кода работает отлично:PHP Получить IP на основе имени хоста
IPHostEntry LocalHostIPEntry = Dns.GetHostEntry(hostname);
IPAddress LocalHostIP = LocalHostIPEntry.AddressList[0];
string ipfromhost = LocalHostIP.ToString();
Единственный вариант, я нашел до сих пор в PHP
является:
gethostbyname('hostname');
Но это возвращает другой IP
для того же хоста, чем C#
кода. Кроме того, возвращается IP
. Если я проверю соответствующий хост с помощью nslookup -IPaddress-
, тогда я получаю совершенно другое имя хоста.
Что происходит? Какие другие методы можно было бы использовать для поиска из host
в сети с использованием PHP
?
Происходит ли эта ошибка со всеми именами хостов? Вы сказали, что находитесь во внутренней сети, что происходит, когда вы проверяете внешне? Что относительно gethostbynamel (получает список, если хост имеет несколько IP-адресов)? Кроме того, gethostbyname использует библиотеку resolver базовой ОС (Linux/Windows) - не уверен, как работает версия C#. Наконец, если вы обнаружите, что запрашиваете неправильный DNS, для этого есть библиотека Pear: http://pear.php.net/package/Net_DNS2 – lydiat
Кажется, что это может быть проблема, связанная с машиной: можете ли вы попробовать тот же код (и 'nslookup') с другого компьютера в той же сети? В качестве альтернативы, с виртуальной машины или дистрибутива Linux? – Viruzzo
Это только для обратного поиска DNS или вы пытаетесь получить общий DNS? – Machavity