我需要检查域名服务器正在使用什么,但在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;
}