Я пытаюсь получить список записей CNAME с помощью PHP.
Этот метод работал, когда я принимал код на своей старой машине с Windows 7, но я перевел его на машину Ubuntu (аналогичная установка стека AMP), и он больше не возвращал записи CNAME для $url
. Я загрузил код на сервер Windows и все еще не записал CNAME.
$records['cname'] = dns_get_record($url, DNS_CNAME);
Не то, чтобы я утверждаю, что ОС имеет много общего с чем-либо, возможно, у меня было что-то определенное на моей старой машине, которая позволила этому работать. В настоящее время он возвращает простой пустой массив, где он использовался для возврата списка записей CNAME, которые совпадали с тем, что было в моей службе управления DNS. Я прочитал статью здесь:
Почему dns_get_record не показывает CNAME, когда я ЗНАЮ, что они существуют?
и в итоге попытался реализовать функциональность с библиотекой NetDns2 Pear с помощью следующего кода. И все же, массив ответов ответа пуст. Не уверен, является ли проблема одинаковой от get_dns_record до NetDNS2 или если я делаю что-то неправильно в обоих случаях, но на проверенных сайтах наверняка есть записи CNAME, включая google.com
и yahoo.com
.
//using Google Name Server $rslvr = new Net_DNS2_Resolver(array('nameservers' => array('8.8.8.8'))); $records['cname'] = $rslvr->query($url, 'CNAME');
Любая помощь приветствуется, конечной целью является получение списка записей CNAME, как я был на моей старой машине.
Работает здесь с PHP 5.4.9.
Первая запись (cweiske.de) не является CNAME
но указывает на IP-адрес:
php > var_dump(dns_get_record('cweiske.de', DNS_CNAME)); array(0) { }
Второй – это CNAME для первой записи:
php > var_dump(dns_get_record('www.cweiske.de', DNS_CNAME)); array(1) { [0] => array(5) { 'host' => string(14) "www.cweiske.de" 'class' => string(2) "IN" 'ttl' => int(86400) 'type' => string(5) "CNAME" 'target' => string(10) "cweiske.de" } }
dig
показывает то же самое:
$ dig cweiske.de cweiske.de. 577 IN A 83.169.7.198 $ dig www.cweiske.de www.cweiske.de. 86397 IN CNAME cweiske.de. cweiske.de. 597 IN A 83.169.7.198
Чтобы проверить, является ли это вашей или PHP-проблемой, используйте dig или nslookup для тестирования.