Использование WhoIs для определения доступности домена

Я использую API, который выполняет запрос WhoIs для определения доступности доменов.

Однако кажется, что каждый TLD дает разные типы ответов, поэтому мне приходится создавать настраиваемые поисковые запросы для каждого из них:

result.match("No match for") //.com
result.match("NOT FOUND") //.info, .org
!result.match("Administrative")//.biz
result.match("Invalid query or domain")//.tk
!result.message.match("registered")//.ca
result.match("No Match")//.edu
result.match("Status: free")//.de
result.match("Not found:")//.de

Есть еще сотни TLD, которые нужно пройти. Конечно, это не лучший способ сделать это. Есть ли более простой способ определить, зарегистрирован домен или нет?


person brentonstrine    schedule 19.04.2013    source источник


Ответы (2)


К сожалению нет. Единственный способ определить, доступен домен или нет, — это вызов whois. Вы не можете использовать альтернативные способы, такие как DNS, потому что даже если домен не разрешается, это не означает, что он доступен.

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

Я автор библиотеки Whois для Ruby. Пока что это единственная библиотека с открытым исходным кодом, которая предоставляет спецификации и парсеры для каждого отдельного ответа. Проверьте это, вы можете использовать его напрямую или получить все ответы оттуда, код с открытым исходным кодом.

Также имейте в виду, что если вы не хотите иметь с этим дело, есть сервисы, которые вы можете использовать для проверки доступности домена.

Вот некоторые из них:

Отказ от ответственности: я являюсь автором RoboWhois.

person Simone Carletti    schedule 19.04.2013

Я пытаюсь решить эту проблему, составив исчерпывающий список серверов Whois. Этот список содержит более 500 доменов верхнего уровня. Не стесняйтесь использовать этот список.

Однако, если вы не хотите беспокоиться об обновлении списка или ограничениях скорости на сервере whois, я могу порекомендовать вам мой Whois API, который также использует этот список.

person Markus Malkusch    schedule 08.03.2016
comment
Спасибо Маркусу за то, что он предоставил список открыто и поддерживает его. - person Patrick Mevzek; 03.01.2018