Перейти к содержимому
Tutorial

WHOIS API: структурированный поиск доменов через RDAP за один POST

| 6 min read

Получите регистратора, дату истечения срока действия, серверы имен и коды состояния для любого домена с помощью одного вызова API. Структурированный JSON из RDAP; без разбора текста.

Terminal window showing domain lookup results
Photo by Sai Kiran Anagani on Unsplash

Вы создаете инструмент мониторинга домена. Вам нужен регистратор, дата истечения срока действия и серверы имен. для каждого домена в вашем портфолио. Старый протокол WHOIS предоставляет неструктурированный текст. Каждый регистратор форматирует по-другому. Его анализ означает написание хрупких регулярных выражений, которые ломаются, когда регистратор меняет формат вывода.

RDAP (протокол доступа к регистрационным данным) решает эту проблему, возвращая структурированный JSON. Но каждый TLD имеет другой сервер RDAP, и вам придется запросить загрузочный реестр IANA, чтобы найти его. Тогда вам все равно необходимо нормализовать ответ, поскольку реализации RDAP различаются в разных реестрах.

Ботой /v1/whois конечная точка обрабатывает все это. Один запрос POST, один JSON ответ, каждый TLD.

Конечная точка

curl -X POST https://api.botoi.com/v1/whois \\
  -H "Content-Type: application/json" \\
  -d '{ "domain": "stripe.com" }'

Ответ:

{
  "success": true,
  "data": {
    "domain": "stripe.com",
    "registrar": "SafeNames Ltd.",
    "status": [
      "client delete prohibited",
      "client transfer prohibited",
      "client update prohibited",
      "server delete prohibited",
      "server transfer prohibited",
      "server update prohibited"
    ],
    "created": "1995-09-12T04:00:00Z",
    "updated": "2024-06-18T10:22:31Z",
    "expires": "2032-09-11T04:00:00Z",
    "nameservers": [
      "ns-cloud-d1.googledomains.com",
      "ns-cloud-d2.googledomains.com",
      "ns-cloud-d3.googledomains.com",
      "ns-cloud-d4.googledomains.com"
    ]
  }
}

Шесть полей покрывают 90% того, что вам нужно от WHOIS: имя регистратора, коды статуса домена, дата создания, последнее обновление, дата истечения срока действия и серверы имен. Все даты указаны в соответствии с ISO 8601. Все серверы имен пишутся строчными буквами. Никакого разбора не требуется.

Необработанный текст WHOIS и структурированный ответ API

Вот что возвращает необработанный протокол WHOIS для того же домена. Это текст, который вы получите а whois stripe.com команда:

Domain Name: STRIPE.COM
Registry Domain ID: 609783_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.safenames.net
Registrar URL: http://www.safenames.net
Updated Date: 2024-06-18T10:22:31Z
Creation Date: 1995-09-12T04:00:00Z
Registry Expiry Date: 2032-09-11T04:00:00Z
Registrar: SafeNames Ltd.
Registrar IANA ID: 447
Registrar Abuse Contact Email: abuse@safenames.net
Registrar Abuse Contact Phone: +44.1onal234567
Domain Status: clientDeleteProhibited
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: serverDeleteProhibited
Domain Status: serverTransferProhibited
Domain Status: serverUpdateProhibited
Name Server: NS-CLOUD-D1.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D2.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D3.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D4.GOOGLEDOMAINS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form:
   https://www.icann.org/wicf/
>>> Last update of whois database: 2026-03-29T10:00:00Z <<<

Это стена текста без стандартного формата. Названия полей, интервалы и порядок изменяются. между регистраторами. Форматы Verisign датируются одним способом. Nominet форматирует их другое. Некоторые регистраторы включают имя и адрес регистранта. Другие все редактируют под GDPR щиты конфиденциальности.

Ответ API предоставляет вам те же данные в предсказуемой структуре. Вы получаете доступ data.expires вместо написания регулярного выражения для «Дата истечения срока действия реестра:». Вы повторяете data.nameservers вместо сканирования строк, начинающихся с «Сервер имен:».

Создайте монитор истечения срока действия домена

Потеря домена из-за того, что кто-то забыл его продлить, обходится дорого и стыдно. Этот Node.js скрипт проверяет список доменов и помечает все, срок действия которых истекает в течение 30 дней. Запускайте его ежедневно с помощью задание cron или запланированный рабочий процесс GitHub Actions.

Скрипт перебирает ваш список доменов, проверяет каждый из них и собирает домены с истекающим сроком действия. в течение 30 дней. sendAlert функциональные публикации в Slack. Поменяйте его на PagerDuty, электронная почта или любая конечная точка веб-перехватчика.

Вы можете расширить это несколькими способами: сохранить результаты в базе данных для отслеживания тенденций истечения срока действия, добавить 60-дневный и 90-дневный порог для многоуровневых оповещений или перекрестная ссылка на серверы имен для обнаружения несанкционированные изменения DNS.

Понимание кодов статуса домена

The status массив в ответе сообщает вам, какие операции выполняются в реестре и регистратор разрешает на домене. Вот ссылка на наиболее распространенные коды:

Домены с «перенос сервера запрещен» и «удаление сервера запрещены» имеют уровень реестра. замки. Они более надежны, чем блокировки на уровне клиента, поскольку снять их может только оператор реестра. их. Высокоценные домены, такие как stripe.com и google.com иметь оба слои.

Если вы видите «ожидает удаления» или «период погашения» в статусе домена, действуйте быстро. Домен либо вот-вот выпустят, либо можно будет восстановить за определенную плату через регистратора.

Когда использовать эту конечную точку

  • Мониторинг портфеля доменов. Отслеживайте даты истечения срока действия для сотен доменов. Предупредите свою команду, прежде чем срок действия домена истечет.
  • Фишинговое расследование. Проверьте, когда был зарегистрирован подозрительный домен. Фишинговые домены часто создаются за несколько часов или дней до атаки.
  • Квалификация руководителя. Домен, созданный в 2003 году, предполагает устоявшийся компания. Домен, зарегистрированный на прошлой неделе, рассказывает другую историю.
  • Обнаружение изменения DNS. Сравните текущие серверы имен с известными базовыми показателями. Изменение сервера имен, которое вы не санкционировали, может означать захват домена.
  • Соблюдение требований и должная осмотрительность. Проверьте данные о владельце домена во время поставщика адаптация или комплексная проверка слияний и поглощений. Регистратор и коды статуса раскрывают имя домена. позиция безопасности.

Ключевые моменты

  • POST /v1/whois возвращает регистратора, даты, коды состояния и серверы имен в нормализованный JSON.
  • Конечная точка запрашивает серверы RDAP, а не устаревший текстовый протокол WHOIS. Вы получаете структурированные данные без написания парсеров.
  • Анонимный доступ работает со скоростью 5 запросов в минуту без API-ключа. Платные планы снимают это ограничение.
  • Ответ включает в себя expires поле в ISO 8601. Используйте его для определения срока действия мониторы, конвейеры оповещений или панели мониторинга домена.

FAQ

В чем разница между WHOIS и RDAP?
WHOIS — это устаревший протокол 1982 года. Он возвращает неструктурированный простой текст без стандартного формата для всех регистраторов. RDAP (протокол доступа к регистрационным данным) — это стандартизированная IETF замена, которая возвращает структурированный JSON. Конечная точка botoi /v1/whois запрашивает серверы RDAP и возвращает нормализованный ответ JSON.
Является ли API поиска WHOIS бесплатным?
Да. Анонимный доступ не требует ключа API и допускает 5 запросов в минуту плюс 100 в день. Платные планы начинаются с 9 долларов в месяц для более высоких лимитов.
Какие TLD поддерживает API?
API запрашивает реестр начальной загрузки RDAP, который охватывает домены .com, .net, .org, .io, .dev, .app, .co и большинство gTLD. Некоторые ДВУ с кодом страны (нДВУ) имеют ограниченное покрытие RDAP и могут возвращать частичные данные.
Почему в ответе отсутствуют поля для связи с владельцем?
Большинство регистраторов по умолчанию применяют защиту конфиденциальности в соответствии с GDPR. Контактные данные (имя, адрес электронной почты, адрес) удаляются на уровне реестра. API возвращает то, что предоставляет сервер RDAP: регистратор, даты, коды состояния и серверы имен всегда доступны.
Могу ли я найти данные WHOIS для IP-адреса, а не для домена?
Эта конечная точка обрабатывает только WHOIS домена. Для данных о владельце IP-адреса (ASN, сетевая организация, диапазон CIDR) используйте конечную точку /v1/ip-whois/lookup.

Начните разработку с botoi

150+ API-эндпоинтов для поиска, обработки текста, генерации изображений и утилит для разработчиков. Бесплатный тариф, без банковской карты.