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
工具接受一个服务器参数。如果保留为空,它将返回与PHPsdns\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。