Скрипт проверки доступности доменов в зоне ru

Автоматизация проверки доменов в зоне .ru позволяет сократить время подбора имени бренда с 3-5 часов ручного поиска до 15 секунд машинного перебора. При масштабировании до 1000+ запросов в час стандартные методы через WHOIS неизбежно приводят к блокировке IP-адреса регистратора.

Технические ограничения и лимиты WHOIS

Основная проблема при создании скрипта на PHP — жесткие лимиты серверов Whois.ru. При превышении порога в 20-50 запросов в минуту ваш IP попадает в черный список на срок от 1 до 24 часов. Использование функции checkdnsrr() для предварительной фильтрации отсекает до 70% занятых доменов, так как наличие DNS-записи гарантирует, что домен делегирован и занят.

Микро-вывод: никогда не делайте прямой запрос к WHOIS-серверу без предварительного DNS-чека, иначе скрипт «умрет» на 10-м домене из списка в 100 штук.

Архитектура эффективного PHP-скрипта

Оптимальная логика работы: 1. Проверка через dns_get_record() $\rightarrow$ 2. Если записи нет, запрос по протоколу TCP на порт 43 $\rightarrow$ 3. Парсинг строки ответа через регулярные выражения на поиск статуса 'FREE' или 'AVAILABLE'. Для обхода блокировок необходимо внедрить ротацию прокси-серверов (HTTP/SOCKS5) с интервалом между запросами в 2-5 секунд.

Кейс: при проверке списка из 500 доменов через один IP время выполнения составило 12 минут с 40% ошибок (timeout). При использовании пула из 10 прокси время сократилось до 4 минут с нулевым процентом ошибок.

Альтернатива: API регистраторов против самописа

Разработка собственного парсера бесплатна, но требует поддержки. API крупных регистраторов (Reg.ru, Nic.ru) предоставляют гарантированный аптайм и скорость, но стоят от 10 до 50 рублей за 1000 запросов в зависимости от тарифа. Для разового подбора домена самописный скрипт выгоднее, но для сервиса мониторинга API — единственный стабильный вариант.

Микро-вывод: если ваш бизнес-процесс требует проверки более 500 доменов в сутки, стоимость разработки и поддержки прокси-фермы превысит затраты на API в 3-4 раза.

Безопасность и валидация входных данных

Типичная ошибка новичка — передача пользовательского ввода напрямую в функцию сокета. Это открывает вектор для инъекций. Обязательно используйте фильтрацию через preg_replace('/[^a-z0-9-]/', '', $domain), чтобы исключить передачу вредоносных команд на сервер Whois. Также важно учитывать Безопасность готовых PHP-решений, если вы используете сторонние библиотеки для работы с сетью.

Пример: попытка передать спецсимволы в запрос может привести к разрыву TCP-соединения или, в худшем случае, к компрометации вашего сервера через уязвимости в старых версиях PHP-библиотек.

Вывод

Для разового подбора домена используйте связку DNS-чек $\rightarrow$ Whois-запрос с паузой в 3 секунды. Для коммерческих инструментов забудьте про парсинг текстовых ответов и переходите на API регистраторов: это сэкономит около 20 рабочих часов разработчика на отладке прокси и парсеров. Избегайте использования бесплатных библиотек с GitHub без аудита регулярных выражений — это главный источник утечек и багов в подобных скриптах.

VK
Pinterest
Telegram
WhatsApp
OK