Функции для работы с DNS


DNS (Domain Name Service, Domain Name Space, Domain Name System - в разных источниках по-разному) - это служба доменных имён, хранящая соответствия IP-адресов и имён узлов. Фактически, когда Вы вводите в бразуер, например, "proglike.ru" браузер не знает, к чему подключаться, и обращается к DNS-серверу, который, зная имя узла, передаёт IP-адрес. Также сервер занимается и обратной операцией, то есть по IP-адресу он выдаёт имя узла. В PHP есть функции для работы с DNS.

Впервую очередь, необходимо понять, что на одном IP-адресе может находиться сразу много доменных имён, поэтому какое именно доменное имя Вам, в конечном итоге, вернёт сервер, зависит только от него. Верно и обратное утверждение о том, что одному доменному имени может соответствовать сразу несколько IP-адресов.

В связи с этим, не всегда функции для работы с DNS будут вести себя корректно, но всё-таки знать их полезно:

<?php
$ip = gethostbyname("vk.com");
echo $ip;
echo "<br />";
echo gethostbyaddr($ip);
echo "<br />";
print_r(gethostbynameL("vk.com"));
?>

Функция gethostbyname() принимает имя узла и возвращает IP-адрес. А функция gethostbyaddr() принимает IP-адрес и возвращает имя узла (имя сервера). Чтобы получить список всех IP-адресов у данного узла, существует функция gethostbynameL(). В примере весь массив выводится через отладочную функцию print_r().