Содержание
В мире SEO стратегия построения PBN (Private Blog Network) часто начинается с поиска и перехвата качественных дроп-доменов. Чтобы понять, стоит ли брать домен, нужно быстро и точно получить информацию о доменах: кто регистратор, когда он был зарегистрирован, когда освободится.
Традиционные сервисы whois решают эту задачу, но медленно и с лимитами. Современной альтернативой стал протокол RDAP — и мы рассмотрим, как с его помощью создать собственный массовый многопоточный сервис whois на Python.
RDAP против WHOIS: в чем разница
Многие вебмастера привыкли использовать команду whois или веб-интерфейсы.
- Структурированные данные — проще парсить и анализировать.
- Поддержка HTTP/HTTPS — можно использовать обычные запросы
requestsв Python. - Единый формат — не зависит от регистратора.
- Возможность автоматизации массовых проверок без сложного парсинга текста.
Как работает массовый RDAP-чекер
Если ваша цель — узнать дату регистрации домена, дату истечения и дату освобождения домена, вам нужен инструмент, который:
- Принимает список доменов из файла
.txt(по одному в строке, с поддержкой форматовhttp://,https://,www.). - Автоматически определяет RDAP-сервер для каждой зоны (.com, .org и т. д.).
- Работает многопоточно — обрабатывает тысячи доменов за минуты.
- Выдает результат в таблице и дает возможность скачать CSV.
Как работает Python код
Очистка доменов
def clean_domain(domain):
domain = re.sub(r'^https?://', '', domain)
domain = re.sub(r'^www\.', '', domain)
return domain.split('/')[0].strip()
Эта функция удаляет протокол, www и лишние слэши, чтобы мы работали только с чистым доменным именем.
Определение RDAP-сервера
def get_rdap_server(domain_suffix):
response = requests.get("https://data.iana.org/rdap/dns.json")
data = response.json()
for entry in data.get("services", []):
if domain_suffix in [z.lower() for z in entry[0]]:
return entry[1][0]
RDAP-сервер для каждой зоны берется из официального списка IANA. Это избавляет от необходимости вручную прописывать адреса.
Получение информации о домене
def get_domain_info(domain):
domain = clean_domain(domain)
suffix = domain.split('.')[-1].lower()
rdap_server = get_rdap_server(suffix)
if not rdap_server:
return [domain, '', '', '', '', '', '', '', 'Нет RDAP сервера']
rdap_url = f"{rdap_server.rstrip('/')}/domain/{domain}"
response = requests.get(rdap_url, timeout=10)
if response.status_code == 404:
return [domain, '', '', '', '', '', 'свободен', rdap_url, 'OK']
data = response.json()
events = {e.get('eventAction'): e.get('eventDate') for e in data.get('events', [])}
return [
domain,
get_registrar_name(data),
events.get('registration', ''),
events.get('expiration', ''),
events.get('last changed', ''),
', '.join(data.get('status', [])),
'занят',
rdap_url,
'OK'
]
Многопоточность
with ThreadPoolExecutor(max_workers=10) as executor:
futures = {executor.submit(get_domain_info, domain): domain for domain in domains}
for future in as_completed(futures):
results.append(future.result())
Экспорт в CSV
После завершения проверки формируем CSV-файл с полями:
- Домен
- Регистратор
- Дата регистрации
- Дата истечения
- Дата изменения
- Статус
- Свободен/занят
- RDAP URL
- Статус проверки
Где применить RDAP-чекер
- Перехват дропов — вы видите, когда истекает регистрация и можно поймать домен.
- Подбор доменов для PBN — проверка истории и активности домена.
- Мониторинг портфеля доменов — контроль даты истечения, чтобы не потерять важный сайт.
- SEO-аудит — выявление доменов с истекшей регистрацией для анализа ссылочного профиля.
Установка и запуск
Чтобы запустить сервис:
pip install streamlit requests
Код доступен на GitHub:
https://github.com/Devvver/rdap-demo/blob/main/rdap_check_mass.py
Запуск через Streamlit:
streamlit run rdap_check_mass.py
После старта в браузере откроется интерфейс, куда можно загрузить список доменов, получить таблицу и скачать CSV.
RDAP-чекер на Python — это быстрый, точный и гибкий инструмент, который заменяет классический WHOIS при массовых проверках.
Он помогает узнать дату регистрации домена, дату истечения и оценить, когда произойдет дата освобождения домена.
Для SEO-специалистов, работающих с PBN и дропами, это способ автоматизировать рутинную задачу, экономить время и всегда быть на шаг впереди конкурентов.



3 комментария
Из 19 реально свободных доменов, определил 3 свободных, 2 Ошибка запроса: HTTPSConnectionPool(host=’rdap.hostmaster.ua’, port=443): Max retries exceeded with url: /domain/whoiam.ru(Caused by ConnectTimeoutError(, ‘Connection to rdap.hostmaster.ua timed out. (connect timeout=10)’)) а остальные Нет RDAP сервера :'(
Лучше уж через Арсенкина или на худой конец foxwhois)
Но в любом случае спасибо за еще один способ, не знал о таком!)
Забыл добавить в пост что региональные зоны, типа ua, ru, fr и так далее не проверяются. Обновил.
Ого это всё меняет) В любом случае спасибо, питончик последнее время выручает, особенно за счет ллмок)