PHP

Получить DNS записи домена в PHP

Функция dns_get_record($domain) поучает все записи домена, подробнее на php.net.

$dns = dns_get_record('yandex.ru');
print_r($dns);

В результате получаем массив значений:

Array (
    [0] => Array (
        [host] => yandex.ru
        [class] => IN
        [ttl] => 3600
        [type] => SOA
        [mname] => ns1.yandex.ru
        [rname] => sysadmin.yandex-team.ru
        [serial] => 2019032625
        [refresh] => 600
        [retry] => 300
        [expire] => 2592000
        [minimum-ttl] => 900
    )
    [1] => Array (
        [host] => yandex.ru
        [class] => IN
        [ttl] => 3600
        [type] => CAA
        [flags] => 0
        [tag] => issue
        [value] => globalsign.com
    )
    [2] => Array (
        [host] => yandex.ru
        [class] => IN
        [ttl] => 3600
        [type] => CAA
        [flags] => 0
        [tag] => issuewild
        [value] => globalsign.com
    )
    ...
)

Он не удобен т.к. записи идут в перемешку, скомпонуем его по типу записей.

$dns = dns_get_record('yandex.ru');

$new = array();
foreach ($dns as $row) {
    $new[$row['type']][] = $row;
}

print_r($new);
Array (
    [MX] => Array (
        [0] => Array (
            [host] => yandex.ru
            [class] => IN
            [ttl] => 162
            [type] => MX
            [pri] => 10
            [target] => mx.yandex.ru
        )
    )
    [NS] => Array (
        [0] => Array (
            [host] => yandex.ru
            [class] => IN
            [ttl] => 345600
            [type] => NS
            [target] => ns2.yandex.ru
        )
        [1] => Array (
            [host] => yandex.ru
            [class] => IN
            [ttl] => 345600
            [type] => NS
            [target] => ns9.z5h64q92x9.net
        )
        [2] => Array (
            [host] => yandex.ru
            [class] => IN
            [ttl] => 345600
            [type] => NS
            [target] => ns1.yandex.ru
        )
    )
    ...
)

Так лучше, можно обработать NS-записи или настойки почты.

Для справки: типы записей DNS

Тип Описание
A IP-адрес сервера
AAAA IPv6 адрес сервера
CAA Авторизованный центр сертификации
CNAME Привязка поддоменов и алисов
MX Адрес и настройки почтового сервера
NS DNS серверы хостинга
PTR Соответствие IP-адрес сервера с его доменом
SOA Указание на авторитетность информации
TXT Текстовые записи
23 марта 2019
В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают в спам или...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать...