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

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

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

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

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

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);
PHP
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.03.2019, обновлено 10.09.2019
5019

Комментарии

, чтобы добавить комментарий.

Другие публикации

Массив $_SERVER
Описание значений глобального массива $_SERVER с примерами.
52411
+3
Использование API Яндекс Диска на PHP
Можно найти множество применений Яндекс Диска на своем сайте, например, хранение бекапов и отчетов, обновление прайсов,...
55906
+20
Поиск похожих текстов в базе данных MySQL + PHP
Один из вариантов поиска похожих статей в базе данных основан на схождении слов в двух текстах.
7223
+6
Получить фото из Instagram без API
Так как Instagram и Fasebook ограничили доступ к API, а фото с открытого аккаунта всё же нужно периодически получать и...
24686
+7
Примеры использования PDO MySQL
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
103966
+8
Запись в лог-файл в PHP
Несколько вариантов как быстро организовать запись данных в лог-файл.
80810
+12