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

Автоматизация проверки доменов в зоне .ru позволяет сократить время подбора имени бренда с 3-4 часов ручного поиска до 15 секунд работы скрипта. При массовом парсинге более 1000 имен в сутки стандартные методы через checkdns или gethostbyname дают до 20% погрешности из-за кеширования DNS и специфики работы регистраторов.

Методы проверки: DNS-запросы против WHOIS

Новички часто используют функцию checkdns(), которая проверяет наличие A-записи. Это фатальная ошибка: домен может быть зарегистрирован, но не иметь привязанного IP, что скрипт интерпретирует как «свободно». Реальная проверка идет через WHOIS-протокол (порт 43). Однако прямые запросы к серверам Whois.ru при частоте более 2-3 запросов в секунду приводят к временному бану IP на срок от 1 до 24 часов.

Кейс: при проверке списка из 5000 доменов через обычный сокет PHP, 12% результатов оказались ложноположительными из-за таймаутов сервера. Решение — внедрение задержки (sleep) в 0.5–1 секунду между запросами или использование пула из 5-10 прокси-серверов.

Экспертный вывод: используйте только WHOIS с обработкой регулярными выражениями статуса 'NOT FOUND' или 'No match', иначе риск купить «занятый» домен или упустить свободный слишком велик.

Оптимизация скорости и обход ограничений

Для промышленного использования скрипта необходимо внедрять многопоточность через curl_multi или расширение pthreads, так как последовательный опрос 100 доменов с паузой в 1 секунду займет почти 2 минуты. Оптимизированный скрипт на PHP 8.2 с использованием асинхронных запросов сокращает это время до 10-15 секунд, распределяя нагрузку по разным WHOIS-серверам.

Важный нюанс: стоимость аренды качественных резидентских прокси для обхода лимитов регистраторов варьируется от $3 до $15 за ГБ трафика. Для проверки доменов трафик минимален, но важна чистота IP, чтобы не попасть в черный список REG.RU или RU-CENTER.

Экспертный вывод: для списков до 100 штук достаточно линейного скрипта с sleep(1), для баз от 1000 имен — только многопоточность и ротация IP.

Интеграция с API регистраторов

Профессиональный подход — отказ от парсинга WHOIS в пользу API (например, API REG.RU). Это дает 100% точность и скорость ответа до 200 мс. Однако это требует авторизации и соблюдения лимитов. Бесплатные лимиты API часто ограничены, а платные тарифы для реселлеров начинаются от нескольких тысяч рублей в месяц при больших объемах.

Сравнение: парсинг WHOIS бесплатен, но нестабилен (ошибки 5-10%); API платен, но гарантирует актуальность данных в режиме реального времени. Если вам нужна разработка сложного инструмента с базой данных и фильтрацией, стоит учитывать, из чего складывается цена разработки кастомного PHP-скрипта под ключ, так как логика обработки API сложнее простого сокета.

Экспертный вывод: если бюджет позволяет тратить 1000-3000 руб/мес на API, забудьте про парсинг WHOIS — это сэкономит десятки часов разработки и отладки.

Типичные ошибки реализации на PHP

Самая частая ошибка — отсутствие обработки таймаутов. Если сервер WHOIS не отвечает, скрипт «зависает» на 30-60 секунд по умолчанию. Необходимо жестко ограничивать timeout до 2-3 секунд. Вторая проблема — некорректная обработка кодировок (UTF-8 vs Windows-1251), из-за чего кириллические домены (РФ) определяются неверно.

Пример: при проверке домена 'бизнес.рф' без преобразования в Punycode (xn--...) скрипт выдаст ошибку или ложный результат. Использование функции idn_to_ascii является обязательным стандартом для зоны .ru.

Экспертный вывод: без модуля intl и функции idn_to_ascii скрипт бесполезен для современного российского рынка, где доля кириллических имен превышает 15% в новых регистрациях.

Вывод

Для разовых задач выбирайте простой PHP-скрипт на сокетах с обязательным sleep(1) и поддержкой Punycode. Для системного бизнеса или сервисов подбора имен — только интеграция через API регистратора. Избегайте использования checkdns() и бесплатных онлайн-чекеров для больших списков, так как они дают до 20% ложных данных. Начинайте с реализации базового класса-валидатора, который разделяет логику запроса и логику анализа ответа.

VK
Pinterest
Telegram
WhatsApp
OK