我正在尝试使用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中解决。
答案 0 :(得分:1)
dns_get_record()
的第三个参数是输出参数,初始值将被忽略。该功能由域的权威服务器填充。
但是,DNS服务器并不总是在响应中返回权威服务器的列表,这是大多数名称服务器(包括最常见的名称服务器BIND
)中的可配置选项。如果服务器在响应的“授权”部分中未返回任何内容,则该数组将为空。