SEO блог — Поисковая оптимизация


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

Рассмотрим функции, которые есть в 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-платформах.

One Response to “Работа с DNS серверами на PHP”

  1. Петр Says:

    Познавательная статья, да и сам сайт я смотрю очень даже не плох. Наткнулся по поиску из Google, посоветую друзьям

≡ Оставить ответ