如何在PHP中检查域名服务器


How to check domain nameservers in PHP?

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

我已经尝试了checkdnsrr();dns_get_record();,它们都没有显示一些正在工作的域的NS。Whois也不是解决方案。

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

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

您的域名zinas.lv使用

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

:

阵列(2){[0]=>数组(5){["主机"]=>字符串(8)"zinas.lv"["类"]=>字符串(2)"IN" ["ttl"]=> int(1655) ["type"]=> string(2)"NS" ["target"]=> string(10)"ns1.dns。Lv "} [1]=> array(5) {["主机"]=>字符串(8)"吉娜。Lv " ["class"]=> string(2)"在"("ttl) =>Int (1655) ["type"]=> string(2)"NS" ["target"]=> string(10)"ns2.dns。Lv "}}

所以你可以简单地使用

显示这两个dns:
$dns = dns_get_record('zinas.lv', DNS_NS);
echo $dns[0]['target'].' '.$dns[1]['target'];

使用这个函数以数组的形式获取任何域的名称服务器:

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