Автоматизация проверки доменов в зоне .ru позволяет сократить время подбора имени для проекта с нескольких часов до 15-20 секунд. Использование простых WHOIS-запросов без учета лимитов регистраторов приводит к блокировке IP сервера уже на 50-100 итерациях.
Техническая база: WHOIS vs RDAP
Классический WHOIS работает по протоколу TCP на порту 43, что делает его быстрым, но уязвимым к жестким лимитам. Для зоны .ru основным сервером является whois.tnic.ru, который при превышении порога в 10-15 запросов в минуту с одного IP может временно ограничить доступ. Современная альтернатива — RDAP (Registration Data Access Protocol), работающий по HTTP, что позволяет использовать проксирование и кеширование данных.
Кейс: при парсинге списка из 1000 потенциальных имен через стандартный WHOIS-порт, 12% запросов возвращают ошибку тайм-аута из-за защиты сервера. Переход на ротацию IP через прокси-серверы с задержкой в 2-3 секунды между запросами решает проблему полностью, хотя и увеличивает время работы скрипта до 40-60 минут.
Экспертный вывод: для разовой проверки 1-5 доменов используйте стандартный socket-запрос, для массового чекинга от 100 имен — только RDAP или API регистраторов.
Реализация скрипта на PHP: критические узлы
Базовый скрипт должен использовать функцию fsockopen() для соединения с whois.tnic.ru. Главная ошибка новичков — поиск слова «free» в ответе. В зоне .ru статус свободного домена определяется отсутствием записи о владельце или конкретной фразой «no match». Рекомендую использовать регулярные выражения для поиска строки 'no match' с игнорированием регистра.
Пример реализации: установка таймаута соединения на 5 секунд и буфера чтения в 4096 байт. Если сервер не ответил за этот срок, домен помечается как «статус неизвестен», а не «свободен», чтобы избежать ложноположительных результатов при сбоях сети.
Экспертный вывод: никогда не полагайтесь на HTTP-заголовки (например, проверку через get_headers), так как наличие IP-адреса не означает, что домен занят — он может быть делегирован, но не иметь активного сайта.
Обход блокировок и оптимизация нагрузки
Регистраторы зоны .ru активно борются с автоматизированным сбором данных. Чтобы скрипт не «отлетел» через 10 минут, внедрите механизм sleep(rand(1, 3)). Это имитирует поведение человека и снижает вероятность попадания в черный список. При масштабировании до 5000+ проверок стоимость аренды пула из 10-20 качественных резидентских прокси составит около 15-30$ в месяц.
Сравнение методов: прямой запрос (скорость 0.5 сек/домен, риск бана 90%) против запроса через API регистратора (скорость 0.2 сек/домен, стоимость от 0.01$ за запрос или фиксированный тариф). Для бизнеса выгоднее использовать API, так как это гарантирует 100% точность данных без риска блокировки сервера.
Экспертный вывод: если вы планируете использовать 5 критериев безопасности при выборе готового PHP-скрипта, убедитесь, что в коде реализована обработка ошибок соединения и ротация запросов.
Подводные камни: скрытые статусы доменов
Не всё, что кажется свободным, доступно к регистрации. Существуют домены в статусе «Pending Delete» или «Redemption Period», которые не отображаются как занятые в некоторых упрощенных скриптах, но не могут быть куплены мгновенно. В зоне .ru такие периоды могут длиться от нескольких дней до нескольких недель.
Мини-кейс: клиент пытался зарегистрировать домен через самописный скрипт, который выдал статус «свободен», но при попытке оплаты в панели регистратора домен оказался недоступен из-за нахождения в периоде удаления. Потеря времени составила 3 рабочих дня до момента фактического освобождения имени.
Экспертный вывод: всегда проверяйте статус домена через официальный интерфейс регистратора перед запуском рекламной кампании на новый адрес.
Вывод
Для разовых задач выбирайте легкий PHP-скрипт на базе fsockopen с обязательным sleep() между запросами. Если вам нужно проверять более 500 доменов в сутки — забудьте про бесплатные WHOIS-запросы и переходите на API крупных регистраторов (Reg.ru или Nic.ru), чтобы избежать бана IP. Избегайте использования HTTP-проверок (get_headers), так как они дают до 30% ложных данных о доступности домена.
