Проверьте IP-адрес NS / DNS-сервера с помощью dns_get_record ()

Я пытаюсь проверить IP-адрес сервера NS / DNS, предоставленный пользователем, с помощью dns_get_record ().
Код:

$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

Решение

Третий аргумент dns_get_record() является выходным параметром, начальное значение игнорируется. Заполняется функцией с авторитетными серверами для домена.

Однако DNS-серверы не всегда возвращают список доверенных серверов в своих ответах, это настраиваемый параметр в большинстве серверов имен (включая BIND, самый распространенный сервер имен). Если сервер ничего не возвращает в разделе авторизации ответа, массив будет пустым.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector