【发布时间】:2012-12-29 04:54:18
【问题描述】:
我正在尝试使用 PHP 获取 CNAME 记录列表。
当我在旧的 Windows 7 机器上托管代码时,此方法曾经有效,但我将其移至 Ubuntu 机器(类似的 AMP 堆栈设置),它不再返回 $url 的 CNAME 记录。我将代码上传到 Windows 服务器,但仍然没有 CNAME 记录。
$records['cname'] = dns_get_record($url, DNS_CNAME);
并不是说我声称操作系统与任何事情有很大关系,也许我在我的旧机器上以某种方式设置了一些东西,让它可以工作。它当前返回一个简单的空数组,因为它曾经返回与我的 DNS 管理服务中的内容匹配的 CNAME 记录列表。我在这里读过这篇文章:
Why wouldn't dns_get_record show CNAMEs when I KNOW they exist?
并最终尝试使用 Pear 的 NetDns2 库实现该功能,并使用以下代码。而且,响应的answer 数组仍然是空的。不确定从 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 记录列表,就像我在旧机器上一样。
【问题讨论】: