【发布时间】:2012-06-07 20:11:54
【问题描述】:
我一直在尝试找出如何检测与域名相关联的父名称服务器。例如,当您使用intoDNS 搜索域名时,它会显示“普通”和父名称服务器的结果。他们提到父名称服务器是什么,如下所示:
k.gtld-servers.net 非常友好地向我们提供了这些信息。
但是他们怎么知道他们必须查询这个特定的域名服务器?父名称服务器是什么的几个示例:
stackoverflow.com k.gtld-servers.net
google.com c.gtld-servers.net
ycombinator.com a.gtld-servers.net
asp.net g.gtld-servers.net
google.nl sns-pb.isc.org
google.de z.nic.de
似乎所有通用顶级域都可以在gtld-servers.net的某个子域中查询。
现在,我发现 PHP 中的“普通”名称服务器是这样的:
$nameservers = dns_get_record($domain_name, DNS_NS);
所以,我想知道,如何找出特定域的父名称服务器是什么,以及如何使用 PHP 查询?
更新
我发现 UNIX 的 nslookup 工具接受服务器参数。如果它留空,它将返回与 PHPs dns_get_record 相同的结果,但如果它是 http://www.iana.org/domains/root/db 上指定的顶级域的根服务器之一,它将返回与 intoDNS 列表相同的结果作为结果父服务器。
剩下的唯一问题是如何查询这个特定的服务器,因为我非常不想使用exec() 直接调用nslookup。有谁知道dns_get_record 的替代方案,它允许您指定服务器?
【问题讨论】:
-
对不起,但是 [a-m].gtld-servers.net。仅对 .com 和 .net 具有权威性,否则会将您指向根服务器(或给出错误)。
标签: php dns nameservers