Я играю с поиском DNS-записей в PHP, и я сталкиваюсь с чем-то запутанным. Я искал 2 разных домена, каждый из которых использовал разные хосты и разные авторитетные серверы имен. Оба этих домена, которые я знаю наверняка, имеют CNAMES.
Я просмотрел записи DNS с помощью этого онлайн-инструмента: http://network-tools.com/ Я также просмотрел их, используя dns_get_record от PHP. A, NS, SOA, MX и т. Д. Все возвращаются. Но нет CNAMES. Я получаю false / пустой массив.
В обоих случаях я могу войти в DNS-контроль для этих доменов и посмотреть CNAMES.
Почему в мире это будет происходить? Цель состоит в том, чтобы разрешить поиск и сохранение всех записей DNS в то время до изменения доменов клиента в серверах имен моей компании (чтобы мы случайно не размещали внешние настройки электронной почты). CNAMES, такие как pop.domain.com, будут здесь достаточно критически важными, но ни один поиск, который я могу найти, не признает, что они существуют.
Реальная проблема, конечно, в том, что функция PHP не возвращает их, так как это действительно то, что мне нужно.
Но меня смущает, что я не могу найти их где-то еще. Тем более, что я смотрю прямо на них в том месте, где я могу добавлять и удалять записи DNS. Говорит прямо здесь:
pop.domain.com CNAME pop.secureserver.net 0 900
(Версия PHP 5.2.6 Linux 2.6.9-67.0.15.plus.c4smp)
Кажется, я понял, почему. Я считаю, что это связано с «Передачей зон» в этом потоке. Можно ли найти все поддомены DNS для данного имени домена? ,
То, что я ожидаю, – это те же функции из поиска CNAME, что и A, NS, MX – ВСЕ ЕЩЕ . (Вряд ли нереалистичное ожидание …)
dns_get_record("domain.com", DNS_CNAME, $authns_cname, $addtl_cname);
Я ожидаю вернуть массив, заполненный всеми CNAMES, настроенными для domain.com. Это не то, что происходит.
Полагаю, мне просто нужно было правильно сформулировать вопрос (15-я перестановка обнаружила многообещающий ответ). Я предполагаю, что оба сервера имен (Dreamhost и моя компания) защищены от этого. Хотя мне кажется, что это не очень страшная информация по сравнению с остальными DNS-записями.
$www = dns_get_record("www.microsoft.com", DNS_CNAME); //print_r($www); //echo $www[0]['target']; while ($www[0]['target']) { echo "<br/>-- ".$www[0]['target']; $www = dns_get_record($www[0]['target'], DNS_CNAME); }