PHP-使用dns_get_record()验证NS / DNS服务器IP

时间:2018-11-22 06:22:53

标签: php dns

我正在尝试使用dns_get_record()验证用户提供的NS / DNS服务器IP。 代码:

$site = 'google.com';
$ns = array('104.28.4.30'); // Some Ip Address not NS / DNS
echo '<pre>';
$result = dns_get_record($site, DNS_A, $ns);
print_r($result);
print_r($ns);

输出:

Array
(
[0] => Array
    (
        [host] => google.com
        [class] => IN
        [ttl] => 299
        [type] => A
        [ip] => 74.125.200.113
    )

...

[5] => Array
    (
        [host] => google.com
        [class] => IN
        [ttl] => 299
        [type] => A
        [ip] => 74.125.200.101
    )
)
Array
(
)

由于我提供了一些随机IP,但是dns_get_record()似乎以某种方式获取记录,而不管所提供的IP是否为NS / DNS。 PS。我知道NET_DNS2类,但是考虑是否可以在本机PHP中解决。

1 个答案:

答案 0 :(得分:1)

dns_get_record()的第三个参数是输出参数,初始值将被忽略。该功能由域的权威服务器填充。

但是,DNS服务器并不总是在响应中返回权威服务器的列表,这是大多数名称服务器(包括最常见的名称服务器BIND)中的可配置选项。如果服务器在响应的“授权”部分中未返回任何内容,则该数组将为空。