checkdnsrr только работает на точку com домены?
Если я использую live.com (или любой существующий дотком), checkdnsrr возвращает значение 1 (TRUE), но это всегда возвращает пустую строку для существующей точки net/org. Не имеет значения, если проверка для A или MX, или NS... записывает. Синтаксис правилен или что-то еще?
<?php
$dom ="live.net";
$check = checkdnsrr($dom,'NS');
echo "live $check test ";
?>
TIA
checkdnsrr ()
вообще не возвращает строку, это функция типа BOOL, так что либо true / false. Прямая печать bools - плохая практика, потому что FALSE
не превращается в 0
, как TRUE
становится 1
. Он преобразуется в пустую строку и поэтому невидим.
По крайней мере, измените свой чек на что-то вроде:
echo "$dom test: " . ($check ? 'TRUE' : 'FALSE');
и получите правильный текстовый вывод «истина» / «ложь».
При этом live.com и live.net нормально разрешают здесь все типы записей DNS. Я бы предложил использовать host
или nslookup
или dig
на сервере, на котором вы это тестируете, чтобы увидеть, что они получают за ответы. PHP должен использовать тот же преобразователь, что и эти инструменты.
Код у меня ты наклеил работы (TM).
Проверьте настройки DNS в вашей системе.