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

Jus*_*kys 2 php lookup dns nameservers

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

我曾尝试checkdnsrr();dns_get_record();,他们都没有表现出对NS一些正在域.Whois也不是解决方案.

我的目的是过滤具有名称服务器设置但没有设置名称服务器的域.这有什么解决方案吗?

Mar*_*łek 6

你应该简单地使用dns_get_record函数,也可以选择传递DNS_NS第二个参数.

为您的域名zinas.lv 使用

var_dump(dns_get_record('zinas.lv', DNS_NS));
Run Code Online (Sandbox Code Playgroud)

我明白了:

array(2){[0] => array(5){["host"] => string(8)"zinas.lv"["class"] => string(2)"IN"["ttl"] => int(1655)["type"] => string(2)"NS"["target"] => string(10)"ns1.dns.lv"} [1] => array(5){[ "host"] => string(8)"zinas.lv"["class"] => string(2)"IN"["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'];
Run Code Online (Sandbox Code Playgroud)


Dan*_*ray 6

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

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