В этой и следующих статьях мы рассмотрим функции, которые предоставляет PHP для работы с DNS серверами. Наиболее часто возникает задача получения имени хоста по его IP-адресу, другие задачи встречаются значительно реже.
Функция gethostbyname
Синтаксис:
string gethostbyname(string hostname)
Пример использования фунции gethostbyname
Код:
<?
$hostname = "localhost";
$ip_address = gethostbyname($hostname);
echo ("IP-адрес $hostname: $ip_address");
?>
Функция 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: <br>n");
foreach($ip_adresses as $index => $val)
{
echo("$val");
}
?>
Функция gethostbyaddr
Эта функция принимает в качестве аргумента IP-адрес и возвращает соответствующее ему имя хоста:
Код:
<?
$ip_address = "127.0.0.1";
$hostname = gethostbyaddr ($ip_address);
echo ("Имя хоста с IP-адресом $ip_address: $hostname");
?>
Функция checkdnsrr
string checkdnsrr(string hostname [, string type])
DNS сервер сохраняет немало полезной информации о хосте, для чего используются так называемые записи ресурсов, которые имеют следующие типы:
* A (Запись содержит IP-адрес хоста);
* CNAME (Запись содержит псевдоним хоста);
* NS (Запись содержит имя DNS-сервера, являющегося авторитетным для поддо-мена. Авторитетным является такой DNS-сервер, который замыкает цепочку DNS-запросов);
* МХ (Запись содержит Имя хоста почтового ретранслятора в домене, которому принадлежит данный хост. В этой записи также хранится значение коэффициента предпочтения для почтового ретранслятора);
* PTR (Запись хранит отображения IP-адресов в имена).
Функция checkdnsrr находит на DNS-сервере записи ресурсов вида type для хоста hostname.
Примечание
Эта функция не поддерживается на Windows-платформах.