Функция dns_get_record($domain)
поучает все записи домена, подробнее на php.net.
В результате получаем массив значений:
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 | Текстовые записи |