Проверка существования домена.

Как проверить занят домен в определённой зоне или не занят? Как это делают провайдеры и регистраторы доменов?

checkdomain.png

Ничего на самом деле сложного в этом нет. Для этого не нужно абсолютно никаких платных сервисов.
Любой зоне соответствует свой WHOIS сервер. Через который можно узнать подробную информацию о человеке/организации, на которую зарегистрирован тот или иной домен. Нопример зоне ua соответствует сервер whois.com.ua. Он также отвечает за домены второго уровня таких как net.ua, com.ua и т.д. Также получить данные по украинским доменам можно через глобальный сервер whois.ripe.net.

Пример реализации на PHP с использованием сокетов:

$connection = @fsockopen("whois.com.ua", 43);
fputs($connection, "drozdov.com.ua");
$buffer = "";
while (!feof($connection)) {
$buffer. = fgets($connection, 4096);
}
fclose($connection);
if (strpos($buffer, "No entries found for domain")){
// домен свободен
} else {
// домен занят
}

Хочу заметить, что все сервера выдают разные сообщения об ошибке, по которым делается вывод о том, что домен не зарегистрирован. На whois.com.ua он такой, как в примере (No entries found for domain), но на других серверах он может быть совсем другим. Например:

  • на сервере whois.ripn.net, который отвечает за зону RU - отрицательный ответ выглядит “No entries found for the selected source(s).”
  • сервер whois.afilias.info, отвечающий за зону INFO, выдаёт просто “NOT FOUND”
  • и т.д

Задержек в ответе сервера практически нет, поэтому проверки по большому количеству зон не слишком затягиваются.

3 Responses to “Проверка существования домена.”

  1. wadim says:

    Где взять перечень серверов на зоны kiev.ua lutsk.ua .odessa.ua.

  2. Денис says:

    Перечень никто вам не даст :)

    можно проверить только лишь наличие зарегистрированного доменного имени.

  3. Олег says:

    Так-то оно так, только на сервере whois.ripn.net существует ограничение на максимум 30 проверок в минуту. Поэтому с массовыми проверками возникают проблемы.

Leave a Reply