Почему dns_get_record не показывает CNAME, если я ЗНАЮ, что они существуют? - PullRequest
1 голос
/ 24 июня 2010

Я играю с поиском записи DNS в PHP и сталкиваюсь с чем-то непонятным.Я просмотрел 2 разных домена, каждый из которых использовал разные хосты и разные авторитетные серверы имен.Оба этих домена, которые я знаю наверняка, имеют CNAMES.

Я просмотрел записи DNS с помощью этого онлайн-инструмента: http://network -tools.com / Я также просмотрел ихиспользуя PHP dns_get_record.A, NS, SOA, MX и т. Д. Все возвращаются.Но нет CNAMES.Я получаю ложный / пустой массив.

В обоих случаях я могу войти в 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)

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

Думаю, я понял, почему. Я полагаю, что это связано с «Зоной передачи» в этой теме Можно ли найти все поддомены DNS для данного доменного имени? .

То, что я ожидаю, - это та же функциональность в поиске CNAME, что и A, NS, MX - ВСЕ ЕЩЕ . (Едва ли нереальные ожидания ...)

dns_get_record("domain.com", DNS_CNAME, $authns_cname, $addtl_cname);

Я ожидаю получить обратно массив, заполненный всеми CNAMES, настроенными для domain.com. Это не то, что происходит.

  • Я могу вернуть единственное CNAME запись для "www.domain.com", если это домен, который я передаю, и для него есть CNAME.
  • Я могу получить вернуть одну запись CNAME для «* .domain.com», если это домен Я вхожу, и для него есть CNAME.
  • Я не могу вернуться буквально все записи CNAME, чтобы сохранить запись всех CNAMES / поддоменов / доменов третьего уровня для domain.com, поиск по шаблону или нет.

Полагаю, мне просто нужно было правильно сформулировать вопрос (15-я перестановка нашла этот многообещающий ответ). Я предполагаю, что оба сервера имен (Dreamhost и моя компания) «защищены» от этого. Хотя мне кажется, что эта информация не очень важна по сравнению с остальными записями DNS.

0 голосов
/ 21 июня 2012
$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);
}
...