Проверка WHOIS — стандартная процедура при покупке домена, анализе конкурентов или расследовании нарушений. Рассмотрим все доступные способы.
1. Командная строка (Linux/macOS/Windows)
# Базовый запрос
whois example.com
# Через конкретный WHOIS-сервер
whois -h whois.verisign-grs.com example.com
# Только основные поля (grep)
whois example.com | grep -i "registrar\|expir\|creat\|name server"
2. Онлайн-сервисы WHOIS
| Сервис | Особенности | URL |
|---|---|---|
| ICANN Lookup | Официальный, все TLD | lookup.icann.org |
| who.is | Удобный интерфейс | who.is |
| DomainTools | История WHOIS, обратный поиск | whois.domaintools.com |
| SecurityTrails | Исторические данные, DNS | securitytrails.com |
| Whoxy | WHOIS API, bulk-запросы | whoxy.com |
3. WHOIS API для разработчиков
# Пример через curl (whoisxmlapi.com)
curl "https://www.whoisxmlapi.com/whoisserver/WhoisService?
apiKey=YOUR_KEY&domainName=example.com&outputFormat=JSON"
Как читать WHOIS-ответ
Пример ответа и его расшифровка:
Domain Name: EXAMPLE.COM
Registrar: Example Registrar, Inc.
Updated Date: 2023-08-01T12:00:00Z # Последнее изменение
Creation Date: 2010-05-14T00:00:00Z # Первая регистрация
Registry Expiry Date: 2027-05-14T... # Истекает
Name Server: NS1.REGISTRAR.COM # DNS-серверы
DNSSEC: unsigned # Без DNSSEC
Status: clientTransferProhibited
Проверка истории домена
Перед покупкой б/у домена важно проверить его историю:
- DomainTools Whois History — полная история владельцев
- Archive.org Wayback Machine — что было на домене раньше
- Google: site:example.com — что Google знает о домене
- Ahrefs/Semrush — обратные ссылки и SEO-история
Типичные ошибки WHOIS-запроса
| Сообщение | Причина | Что делать |
|---|---|---|
| No match for domain "EXAMPLE.COM" | Домен свободен либо только что зарегистрирован и ещё не попал в базу (задержка до 24 часов) | Подождите сутки и повторите запрос, либо проверьте статус через сайт регистратора |
| whois: connect: Connection refused | Локально не установлен пакет whois, либо провайдер блокирует исходящий порт 43 | Установите пакет: apt install whois, или используйте онлайн-сервис вместо консоли |
| Query limit exceeded (WHOIS API) | Превышен лимит бесплатных запросов у выбранного WHOIS API за сутки или месяц | Подождите сброса лимита или перейдите на платный тариф API |
| Пустой ответ для доменов .ua | Реестр .ua — «тонкий» (thin), полные контактные данные хранятся у регистратора, а не в центральном WHOIS | Запросите данные напрямую на сайте регистратора, у которого куплен домен |
| Временная блокировка при частых запросах | Публичные WHOIS-серверы ограничивают число запросов с одного IP в единицу времени | Делайте паузы между запросами или используйте платный WHOIS API с более высоким лимитом |
Сравнение WHOIS и RDAP
| Параметр | WHOIS | RDAP |
|---|---|---|
| Формат ответа | Произвольный текст (порт 43) | Структурированный JSON (через HTTPS) |
| Машиночитаемость | Низкая, нужен отдельный парсер под каждый TLD | Высокая, единый формат для всех регистраторов |
| Поддержка доменных зон | Практически все TLD, включая старые | Растущий список, не все TLD ещё перешли на RDAP |
Когда WHOIS не даёт ответа
- Домен защищён сервисом WHOIS Privacy — вместо реальных данных владельца видны контакты прокси-сервиса регистратора
- Зона .ua использует «тонкую» модель WHOIS — контактные данные хранит не центральный реестр, а конкретный регистратор
- Домен зарегистрирован буквально только что — данные ещё не реплицировались в публичную базу WHOIS
- Хостинг или сеть провайдера блокирует исходящие запросы на порт 43 — тогда работает только веб-интерфейс, но не консольная команда
Общий разбор всех полей и терминов WHOIS — в статье «Что такое WHOIS: полный справочник». Если WHOIS нужен для проверки перед покупкой занятого домена, порядок трансфера описан в статье «Трансфер домена: пошаговое руководство по переносу».
Проверка результата
Убедитесь, что данные получены корректно и относятся к нужному домену:
# Сверить домен в ответе с запрошенным (защита от опечаток)
whois example.com | grep -i "domain name"
# Альтернативный протокол RDAP — если WHOIS не отвечает
curl -s "https://rdap.org/domain/example.com" | grep -i "ldhName"
# Проверить, что домен реально делегирован (иначе WHOIS может врать про статус)
dig NS example.com +short
Если данные владельца понадобятся для оформления домена на компанию, процесс описан в статье «Регистрация домена на юридическое лицо: документы».
Частые вопросы
Можно ли связаться с реальным владельцем домена, если его данные скрыты сервисом WHOIS Privacy?
Напрямую — обычно нет: вместо настоящих контактов в ответе показываются данные прокси-сервиса регистратора, а не самого владельца. Связаться удаётся только через форму или почту, которую предоставляет этот прокси-сервис, и сообщение доходит до владельца уже в пересланном виде. Реальные контакты раскрываются регистратором лишь по официальному запросу, а не по обычному обращению постороннего человека.
Остаётся ли дата первой регистрации домена (Creation Date) неизменной при смене владельца?
Да, при обычном переходе домена к новому владельцу поле Creation Date сохраняет исходную дату первой регистрации, а не обнуляется заново — домен просто продолжает отсчёт своего возраста. Это удобно при оценке «возраста» домена перед покупкой, но само по себе не говорит ничего о репутации: для полной картины стоит отдельно смотреть историю владельцев и содержимого через сервисы вроде DomainTools.
Стоит ли в собственном скрипте использовать RDAP вместо обычного WHOIS-запроса?
Если нужна именно автоматическая обработка ответа в коде, RDAP удобнее: ответ приходит структурированным JSON вместо произвольного текста, который приходится разбирать отдельным парсером под каждую доменную зону. Но не все зоны уже перешли на RDAP, поэтому для максимального покрытия доменов скрипту иногда приходится поддерживать оба протокола параллельно, а не выбирать только один из них.
Что делать, если команда whois в терминале вообще не находится?
Чаще всего причина в том, что соответствующий пакет просто не установлен в системе — на большинстве дистрибутивов Linux его можно поставить штатным менеджером пакетов за одну команду. Если после установки ошибка сохраняется, стоит дополнительно проверить, не блокирует ли сеть провайдера исходящие обращения на нужный порт, и в таком случае воспользоваться веб-сервисом вместо консоли.