DataLife Engine > PHP > Работа с DNS серверами

Работа с DNS серверами


18 сентября 2007. Разместил: podpole
В этой и следующих статьях мы рассмотрим функции, которые предоставляет PHP для работы с DNS серверами. Наиболее часто возникает задача получения имени хоста по его IP-адресу, другие задачи встречаются значительно реже.

Функция gethostbyname

Синтаксис:

string gethostbyname(string hostname)
Пример использования фунции gethostbyname


Функция gethostbynamel

string gethostbynamel(string hostname)

Многие компьютеры имеют несколько IP-адресов, особенно типична такая ситуация для различных серверов. Получить полный список IP-адресов, соответствующих данному имени компьютера, можно с помощью функции gethostbynamel, действующей аналогично функции gethostbyname. Другая ситуация, в которой полезно применение этой функции, возникает, когда одно имя DNS соответствует нескольким компьютерам. Это бывает при работе с DNS серверами, поддерживающими механизм кругового распределения нагрузки, при котором одно имя DNS сервера отображается на несколько компьютеров в локальной сети этого сервера.

Возвращаемый список IP-адресов функция gethostbynamel помещает в массив:

<?
$hostname = "localhost";
$ip_addresses = gethostbyname($hostname);
echo("The IP adresses of '$hostName' are:
\n");
foreach($ip_adresses as $index => $val)
{
echo("$val");
}
?>
Функция gethostbyaddr

Эта функция принимает в качестве аргумента IP-адрес и возвращает соответствующее ему имя хоста:


Функция checkdnsrr

string checkdnsrr(string hostname [, string type])

DNS сервер сохраняет немало полезной информации о хосте, для чего используются так называемые записи ресурсов, которые имеют следующие типы:
A (Запись содержит IP-адрес хоста);
CNAME (Запись содержит псевдоним хоста);
NS (Запись содержит имя DNS-сервера, являющегося авторитетным для поддо-мена. Авторитетным является такой DNS-сервер, который замыкает цепочку DNS-запросов);
МХ (Запись содержит Имя хоста почтового ретранслятора в домене, которому принадлежит данный хост. В этой записи также хранится значение коэффициента предпочтения для почтового ретранслятора);
PTR (Запись хранит отображения IP-адресов в имена).

Функция checkdnsrr находит на DNS-сервере записи ресурсов вида type для хоста hostname.
Примечание

Эта функция не поддерживается на Windows-платформах.