【问题标题】:How to check domain nameservers in PHP?如何在 PHP 中检查域名服务器?
【发布时间】:2014-09-06 18:58:38
【问题描述】:

我需要检查域名服务器使用的是什么域名,但在 PHP 中找不到正确的解决方案。

我尝试了checkdnsrr();dns_get_record();,对于某些正在运行的域,它们都没有显示 NS。 Whois 也不是解决方案。

我的目的是过滤设置了名称服务器和没有设置名称服务器的域。有什么解决办法吗?

【问题讨论】:

  • dns_get_record($host, DNS_NS); 是唯一的方法。如果该函数的返回值中缺少名称服务器条目,则调用运行 PHP 的服务器与之通信的 DNS 服务器很可能不是最新的。如果您所在的公司拥有自己的 DNS 服务器来缓存条目或进行不定期更新,则可能会出现这种情况。
  • 您应该提供dns_get_record 不起作用的示例域
  • dns_get_record('zinas.lv');不适用于 zinas.lv 域
  • 如果 dns_get_record 不适合你,我建议你使用像 [link]whoisxmlapi.com/[/link] 这样的网络服务

标签: php dns lookup nameservers


【解决方案1】:

您应该简单地使用dns_get_record 函数,并且可以选择将DNS_NS 作为第二个参数传递。

为您的域zinas.lv 使用

var_dump(dns_get_record('zinas.lv', DNS_NS));

我明白了:

array(2) { [0]=> array(5) { ["host"]=> string(8) "zinas.lv" ["class"]=> string(2) "IN" ["ttl"]=> int(1655) ["type"]=> string(2) "NS" ["目标"]=> 字符串(10) "ns1.dns.lv" } [1]=> 数组(5) { ["host"]=> 字符串(8) "zinas.lv" ["class"]=> 字符串(2) "IN" ["ttl"]=> int(1655) ["type"]=> string(2) "NS" ["target"]=> string(10) "ns2.dns.lv" } }

所以您可以使用以下方法简单地显示这 2 个 dns:

$dns = dns_get_record('zinas.lv', DNS_NS);

echo $dns[0]['target'].' '.$dns[1]['target'];

【讨论】:

  • 谢谢,它现在适用于 zinas.lv 域。如果它返回:array(0) { } 这意味着域没有设置名称服务器?
  • @user3844395 可能是的,但您也应该使用其他一些方法检查它,例如查看http://dnscheck.pingdom.com 并确保没有给出名称服务器。但是据我所知,几乎所有域(甚至更多)都需要设置 NS 记录(如果它们处于活动状态)
  • 大约有 150k 个域,我无法手动检查它们,所以我正在寻找自动化解决方案。我希望它现在可以工作。还有可能检查公共 DNS 上的域 NS 记录吗?例如google 8.8.8.8OpenDNS ?
  • @user3844395 如此简单,首先检查列表,然后手动检查一些具有空 $dns 的域。可能您的某些域将处于非活动状态,因此它们将返回空 $dns 数组
  • @marcin-nobialek 我只有几个域,$dns 响应为空,但 whois 查找显示有一个名称服务器集。那是什么意思 ?域被隔离、过期或dns_get_record 失败?
【解决方案2】:

使用此函数将任何域的名称服务器作为数组获取:

function getDns($domain)
{
    $dns = dns_get_record($domain, DNS_NS);
    $nameservers = [];
    foreach ($dns as $current)
        $nameservers[] = $current['target'];
    return $nameservers;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2012-01-04
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多