2015-06-08 4 views
1

У меня был сценарий на одном из моих веб-сайтов, который извлекал записи DNS с помощью функции PHP dns_get_record(). Но около двух недель эта функция возвращает пустой массив. Я написал тестовый сценарий, как показано ниже:Почему функция dns_get_record() PHP возвращает пустой массив?

<?php 
$result = dns_get_record("php.net"); 
if (count($result)) { 
    print_r($result); 
} else { 
    echo 'Empty Array'; 
} 
?> 

Он хорошо работает на моей локальной машине, но когда я проверить это на моем сервере, он возвращает пустой массив в качестве результата.
Что за друзья?

+0

Это более вероятно, что $ результатом является ложным, а не пустой массив, который указывает на то, что не удалось. –

+0

Ваш сервер DNS слепой, тогда как клиент не – AsConfused

+0

@AsConfused, можете ли вы дать мне решение? У меня не было такой проблемы до –

ответ

0

Проверить DNS порты открыты на сервере, требуется TCP/UDP порт 53.

Вы можете проверить, что сервер может сделать исходящие запросы DNS, введя следующую

dig exmaple.com и посмотреть, если вы получите ожидаемый ответ.

Проверьте сервер, на котором установлены DNS-серверы, а затем проверьте брандмауэр, как было предложено ранее.

Наконец, стоит проверить версии PHP на каждой машине?

+0

'dig php.net' возвращает соответствующий результат. Также в брандмауэре открыт порт 53. Версия PHP - это 5.3 на моем локальном компьютере и 5.4 на моем сервере. –

0

Клиенты нуждаются в dns и dhcp или жестко закодированном заполнении в пробелах.

серверы часто сидят слеп к чему-либо только в ответ на их IP Addr направленный трафик

Смежные вопросы