PHP Получить IP-адрес на основе имени хоста

Мне нужно реализовать решение от WinApp, написанное в C# до PHP. Мне нужно извлечь IP на основе host name. Следующий фрагмент кода отлично работает:

IPHostEntry LocalHostIPEntry = Dns.GetHostEntry(hostname);
IPAddress LocalHostIP = LocalHostIPEntry.AddressList[0];
string ipfromhost = LocalHostIP.ToString();

Единственный вариант, который я нашел до сих пор в PHP:

gethostbyname('hostname');

Но это возвращает другой IP для одного и того же хоста, чем код C#. Кроме того, возвращаемое значение IP неверно. Если я проверяю связанный узел с помощью nslookup -IPaddress-, тогда я получаю совершенно другое имя хоста.

Что происходит? Какие другие методы можно использовать для поиска IP в host в сети с помощью PHP?

Ответ 1

вы можете использовать функцию php dns_get_record

array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]] )

И затем посмотрите в массиве запись типа A (означает IPv4)

Ответ 2

Есть 2 решения для получения хост-IP с использованием 2 предопределенных функций

$ip = gethostbyname('php.net');
echo $ip;

$result = dns_get_record("php.net");
print_r($result);

Будет работать, когда у вас есть доступ к этим сайтам через ваш брандмауэр. он блокируется, тогда вы увидите свой локальный ip вместо желаемого IP-адреса сайта.