Перейти к содержимому

Функция PHP dns_get_record(): Всё, что вам нужно знать

Как PHP-разработчик, вы можете столкнуться с необходимостью получения различных типов DNS-записей для доменного имени. Функция dns_get_record() — это встроенная функция PHP, которая позволяет извлекать эти записи.

⚠️ Уведомление об устаревании: Функция dns_get_record() была помечена как устаревшая в PHP 8.2 и удалена в PHP 8.4. Для современных PHP-приложений рекомендуется использовать расширение getdns, системные команды вроде dig или nslookup через shell_exec(), либо сторонние DNS-библиотеки.

Что такое функция dns_get_record()?

Функция dns_get_record() извлекает различные типы DNS-записей для указанного доменного имени. Она возвращает массив DNS-записей в зависимости от указанного типа записи.

Как использовать функцию dns_get_record()

Использование функции dns_get_record() достаточно просто. Ниже приведён синтаксис функции:

PHP-синтаксис функции dns_get_record()

php
dns_get_record($hostname, $type = DNS_ANY, &$authns = NULL, &$addtl = NULL);

Функция принимает четыре параметра:

  • $hostname: Доменное имя, для которого вы хотите получить DNS-записи.
  • $type: Тип DNS-записи, которую вы хотите получить. Этот параметр необязателен и по умолчанию равен DNS_ANY, если не указан.
  • &$authns: Переменная, которая хранит авторитетные DNS-серверы домена.
  • &$addtl: Переменная, которая хранит дополнительную информацию о DNS-записях.

Ниже приведён пример использования функции dns_get_record() для получения A и MX записей доменного имени с захватом авторитетных DNS-серверов и дополнительных записей:

Как использовать функцию dns_get_record()?

php
<?php

$domain = "example.com";
$authns = [];
$addtl = [];
$records = dns_get_record($domain, DNS_A | DNS_MX, $authns, $addtl);

print_r($records);

Функция возвращает массив ассоциативных массивов. Каждый элемент представляет собой DNS-запись и содержит общие ключи, такие как host, type, class и ttl. В зависимости от типа записи она также включает специфичные для типа ключи, такие как ip (или ipv6), priority, target, txt или ns.

Типы DNS-записей

Функция dns_get_record() может извлекать различные типы DNS-записей. Вот некоторые из наиболее распространённых:

  • A: Возвращает IPv4-адрес доменного имени.
  • AAAA: Возвращает IPv6-адрес доменного имени.
  • MX: Возвращает почтовый сервер (MX) для доменного имени.
  • NS: Возвращает DNS-сервер для доменного имени.
  • CNAME: Возвращает каноническое имя для псевдонима.

Заключение

Функция dns_get_record() — это полезный инструмент для получения различных типов DNS-записей доменного имени. Понимая синтаксис и принципы использования функции, вы сможете легко получать необходимые DNS-записи для вашего PHP-приложения. Надеемся, эта статья оказалась полезной и помогла вам лучше разобраться в функции dns_get_record() в PHP.

Практика

Какова цель функции dns_get_record() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.