checkdnsrr

(PHP 3, PHP 4, PHP 5)

checkdnsrr - проверяет записи DNS, соответствующие данному Internet хост-имени или IP-адресу.

Описание

int checkdnsrr ( string host [, string type])

Ищет DNS для записи типа type, соответствующего host. Возвращает TRUE, если какие-либо записи найдены; возвращает FALSE, если записи не были найдены или если возникла ошибка.

type может быть:

  • A Запись содержит IP-адрес хоста;
  • CNAME Запись содержит псевдоним хоста;
  • NS Запись содержит имя DNS-сервера, являющегося авторитетным для поддо-мена. Авторитетным является такой DNS-сервер, который замыкает цепочку DNS-запросов;
  • МХ По умолчанию. Запись содержит Имя хоста почтового ретранслятора в домене, которому принадлежит данный хост. В этой записи также хранится значение коэффициента предпочтения для почтового ретранслятора;
  • PTR Запись хранит отображения IP-адресов в имена.
  • SOA
  • ANY

    Host это может быть либо IP-адрес в нотации dotted-quad, либо имя хоста.

    Примечание: Эта функция не реализована для платформ Windows.

    Пример эмулятора функции checkdnsrr() для платформ Windows
    function win_checkdnsrr($host, $type='MX') {
        if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') { return; }
        if (empty($host)) { return; }
        $types=array('A', 'MX', 'NS', 'SOA', 'PTR', 'CNAME', 'AAAA',
             'A6', 'SRV', 'NAPTR', 'TXT', 'ANY');
        if (!in_array($type,$types)) {
            user_error("checkdnsrr: '$type' не поддерживается!", E_USER_WARNING);
            return;
        }
        @exec('nslookup -type='.$type.' '.escapeshellcmd($host), $output);
        foreach($output as $line){
            if (preg_match('/^'.$host.'/',$line)) { return true; }
        }
    }
    // определение функции
    if (!function_exists('checkdnsrr')) {
        function checkdnsrr($host, $type='MX') {
            return win_checkdnsrr($host, $type);
        }
    }
    
    /* пример использования */
    echo "<pre>";
    $domains=array('example.com','php.net');
    foreach ($domains as $domain) {
        $result=checkdnsrr($domain);
        echo $domain.':';
        echo $result?"true\n":"false\n";
    }

    Смотрите также getmxrr(), dns_get_record(), gethostbyaddr(), gethostbyname() и gethostbynamel().

    Все функции сетевые
    Описание на ru2.php.net
    Описание на php.ru