Php 父名称服务器

Php 父名称服务器,php,dns,nameservers,Php,Dns,Nameservers,我一直在试图找出如何检测与域名关联的父名称服务器。例如,当您使用搜索域名时,它会显示“普通”和父名称服务器的结果。他们提到父名称服务器是什么,如下所示: $nameservers = dns_get_record($domain_name, DNS_NS); k.gtld-servers.net非常友好地向我们提供了这些信息 但是他们怎么知道必须查询这个特定的名称服务器呢?父名称服务器是什么的几个示例: stackoverflow.com k.gtld-servers.net google

我一直在试图找出如何检测与域名关联的父名称服务器。例如,当您使用搜索域名时,它会显示“普通”和父名称服务器的结果。他们提到父名称服务器是什么,如下所示:

$nameservers = dns_get_record($domain_name, DNS_NS);
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
似乎所有通用TLD都可以在
gtld servers.net
的特定子域中查询

现在,我发现PHP中的“普通”名称服务器如下:

$nameservers = dns_get_record($domain_name, DNS_NS);
所以,我想知道,我如何才能找到特定域的父名称服务器,以及如何使用PHP查询父名称服务器


更新 我发现UNIX的
nslookup
工具接受一个服务器参数。如果保留为空,它将返回与PHPs
dns\u get\u record
相同的结果,但如果它是上指定的顶级域的根服务器之一,它将返回与父服务器的结果相同的结果,如intoDNS列表所示


剩下的唯一问题是如何查询这个特定的服务器,因为我不希望使用
exec()
直接调用
nslookup
。有人知道允许您指定服务器的
dns\u get\u记录的替代方法吗?

特定域的名称服务器是在区域文件中指定为“NS”记录的服务器。您列出的主机/服务器是全局/根服务器,它们维护有关域的特定TLD的信息


如果你想知道这些是什么,你可以看看这里:

我已经知道怎么做了。为此,我不得不使用PEAR包,因为它允许您指定使用哪个DNS服务器。如果我指定所提到的文件nickc中列出的服务器之一:

(对于要查询的顶级域,您必须使用其中一个服务器,不管是哪一个)

这将打印:

...
    [authority] => Array
        (
            [0] => Net_DNS2_RR_NS Object
                (
                    [nsdname] => ns1.webfaction.com
                    [name] => webassay.com
                    [type] => NS
                    [class] => IN
                    [ttl] => 172800
                    [rdlength] => 17
                    [rdata] => ns1webfaction�
                )

            [1] => Net_DNS2_RR_NS Object
                (
                    [nsdname] => ns2.webfaction.com
                    [name] => webassay.com
                    [type] => NS
                    [class] => IN
                    [ttl] => 172800
                    [rdlength] => 6
                    [rdata] => ns2�.
                )

            [2] => Net_DNS2_RR_NS Object
                (
                    [nsdname] => ns3.webfaction.com
                    [name] => webassay.com
                    [type] => NS
                    [class] => IN
                    [ttl] => 172800
                    [rdlength] => 6
                    [rdata] => ns3�.
                )

        )
...

这与intoDNS上的父服务器返回的名称服务器匹配:

这已经非常有用了,谢谢!问题的一部分现在已经解决了,但我怎么能对此提出质疑呢?(我在回答中添加了更多信息)对不起,但是[a-m].gtld-servers.net。仅用于.com和.net的authoritive,或者将您指向根服务器(或给出错误)。为什么不使用resursive名称服务器而不是authoritive名称服务器进行解析?请尝试8.8.8.8、8.8.4.4、4.2.2.1、4.2.2.2或99.99.99.99。