Запуск PHP 5.2 на Linux, я запускаю ряд запросов с dns_get_record()
. Из документации видно, что эта функция реплицирует , но я вижу несоответствия. Моя цель - получить первичный и вторичный серверы имен, которые являются авторитетными для доменов, к которым принадлежит каждое имя хоста.PHP5: dns_get_record() возвращает только записи для поддоменов
dns_get_record('example.com', DNS_NS);
возвращает хорошие результаты. dns_get_record('www.example.com', DNS_NS);
ничего не возвращает. dns_get_record('www.example.com', DNS_ANY);
возвращает только A-запись. dns_get_record('www.example.com', DNS_SOA);
ничего не возвращает.
Однако из командной строки с помощью рыть, я всегда могу получить по крайней мере SOA:
dig www.example.com NS
или dig www.example.com SOA
возвращение действительный AUTHORITY SECTION (IN SOA), содержащий серверы имен.
Как я могу воспроизвести это на PHP? Я пробовал модуль PEAR Net_DNS и видел похожие махинации, как с dns_get_record()
.
Как вы знаете, что 'dig' не просто срывает« www.' перед выполнением запросов NS или SOA? –
Я полагаю, я не знаю, что это не так. – brianjcohen
Шон Яркий (почти) правильный. Используйте опцию «+ trace» с помощью dig, чтобы узнать, что происходит на самом деле: Dig будет идти из верхней иерархии и работать вниз (не наоборот) - обычно вы не настраиваете SOA под поддоменом " WWW». PHP dns_get_record - это _not_ dig, он просто сделает то, что вы ему скажите. – lifeofguenter