Работа с DNS в PHP

В данной статье будут рассмотрены инструменты в PHP предназначенные для работы с DNS.

Зачастую возникает задача получения имени хоста по его IP-адресу.

Теперь непосредственно перейдем к рассмотрению задачи получения  IP-адреса по имени хоста. Для ее решения используют две функции:

  1. string gethostbyname ( string $hostname );
  2. array gethostbynamel ( string $hostname );

Обе функции в качестве аргумента принимают строку, которая содержит имя хоста (компьютера).

Разница между ними заключается лишь в том, что gethostbyname() возвращает строку с соответствующим  IP-адресом компьютера, а gethostbynamel() – массив.

gethostbynamel() полезна в том случае, когда необходимо получить полный список IP-адресов, которые соответствуют данному доменному имени.

Чтобы получить доменное имя по известному  IP-адресу, необходимо воспользоваться функцией:

string gethostbyaddr ( string $ip_address )

Входящий параметр – строка с IP-адресом искомого сервера, возвращаемое значение – строка с доменным именем.

Для того чтобы  получить список почтовых ретрансляторов необходимого домена, используют:

bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )

Аргументы:

$hostname – имя хоста;
&$mxhosts – массив, который будет заполнен списком почтовых ретрансляторов;
&$weight – необязательный параметр. Если он указан, то он будет заполнен значениями предпочтения, которые возвращает почтовый ретранслятор.

Ниже представлены еще несколько полезных функций:

int getprotobyname ( string $name )

по имени TCP/IP протокола определяет его номер.

string getprotobynumber ( int $number )

по номеру TCP/IP протокола возвращает его имя.

int getservbyname ( string $service , string $protocol )

принимает в качестве аргументов:  $service – имя службы и $protocol – и один из транспортных протоколов (TCP или UDP). Возвращает номер порта, через который работает данная служба.

string getservbyport ( int $port , string $protocol )

входные параметры:  $port – номер порта и $protocol – протокол. Возвращает имя службы.

Leave a Reply




*