Все мы привыкли работать с символьными адресами компьютеров в Интернете, но только Интернет не может с ними работать без специальной службы DNS (Domain Name System, служба имен доменов). Для адресации компьютеров в сети используются числовые IP-адреса, а символьные слова — это всего лишь псевдонимы. Когда вы запрашиваете соединение с сервером по символьному имени, то сначала это имя превращается в IP-адреса с помощью службы DNS, и только потом происходит соединение с полученным IP. Посмотрим как выглядит Работа с DNS в PHP
Итак, для определения IP-адреса используются функции gethostbyname() и gethostbyname() . Обеим функциям нужно передать в качестве параметра имя компьютера, IP-адрес которого вы хотите узнать. В качестве результата функция gethostbyname() возвращает первый найденный IP-адрес, a gethostbyname () возвращает список всех найденных адресов. Дело в том, что за одним именем может быть закреплено несколько IP-адресов. Если вам нужно просто создать соединение, то можно воспользоваться функцией gethostbyname() , этого вполне достаточно. Рассмотрим пример определения IP-адреса по доменному имени:
<?php $host_ip = gethostbyname("www.yahoo.com"); print("У Yahoo IP адрес: $host_ip"); ?>
Иногда бывает необходимо выполнить обратную операцию — преобразовать IP-адрес в доменное имя. Для этого используется функция gethostbyaddr(). Этой функции нужно передать IP-адрес, а в результате мы получим доменное имя:
$name=gethostbyaddr("127.0.0.1"); print("Your computer name: $name");
У каждого символьного имени обязательно должен быть IP-адрес, иначе сетевое соединение будет недоступно. Но при этом не у каждого IP-адреса есть имя, или, возможно, просто не существует соответствующая DNS-запись. В этом случае функция gethostbyaddr () возвращает не имя, а IP-адрес, который вы указали в параметре. Адрес 127.0.0.1 соответствует локальной машине, и для этого адреса функция, чаще всего, возвращает имя localhost.
Comments ( 0 )