Функции для работы с DNS
При написании сценариев вне зависимости от языка программирования часто возникает потребность разрешения IP-адреса в доменное имя и наоборот.
Преобразование IP-адреса в доменное имя выполняет функция
string gethostbyaddr(string $ip_address);
В случае ошибки возвращается IP-адрес.
Преобразование имени хоста в IP-адрес выполняет функция
string gethostbyname(string $host);
Если вам нужно получить все IP-адреса хоста с именем $host, используйте функцию
array gethostbynamel(string $host);
В листинге 4 применена именно функция gethostbynamel.
Листинг 4. Получение всех IP-адресов хоста $host <? $host="www.yahoo.com"; $ips=gethostbynamel($host); foreach($ips as $ip) echo $ip; ?>
Определить почтовик для указанного хоста hostname можно с помощью функции
int getmxrr(string hostname, array mxhosts, array [weight]);
Данная функция запрашивает DNS на предмет наличия записей MX для указанного хоста.
Следующие функции никакого отношения к DNS не имеют, но чтобы не создавать другого раздела в статье, я описал их здесь.
int getprotobyname(string name);
Функция getprotobyname() возвращает номер протокола, который соответствует имени $name.
Обратная ей функция
string getprotobynumber(int number);
возвращает имя протокола по его номеру.
Функция
int getservbyname(string service, string protocol);
возвращает номер порта Internet-сервиса, название которого указано в параметре $service. Второй параметр функции – это протокол: tcp или udp.
Например, оператор
echo getservbyname("ftp", "tcp");
выведет в окно броузера число 21.
Для функции getservbyname() также существует обратная ей:
string getservbyport(int port, string protocol);
При использовании функции getservbyport() нужно указать номер порта и протокол (tcp или udp) и, как результат, вы получите название Internet-сервиса.
Например,
echo getservbyport(21, "tcp");
выведет в окно броузера название сервиса – ftp.