В настоящее время нет действующей бесплатной службы publi c, которая позволяет вам делать то, что вы хотите, и даже если для этого «скоро» появятся технические решения, они, вероятно, либо не будут опубликованы c, либо не будут бесплатными или сильно ограничено.
Существует по крайней мере один возможный ярлык (с использованием файлов зон), но ваш вопрос недостаточно подробен, чтобы быть уверенным, что он подходит, но см. ниже. Это может работать лучше / быстрее, чем использование DNS, в зависимости от вашего варианта использования. У него есть свои преимущества и недостатки.
Я рассмотрю также другие моменты, чтобы взглянуть на вещи в перспективе, и мой ответ будет общим c (применимо к нескольким TLD и разными способами). Но это не даст вам готового сценария, который можно было бы просто использовать, поскольку оба эти веб-сайта не являются доской для письма, и ваша проблема с некоторыми указанными c ограничениями слишком велика.
Я выиграл ' t повторить решение, основанное на DNS-запросах, как оно уже было дано, даже если полученный ответ может быть улучшен (вам абсолютно необходимо обратиться к серверам имен реестра, а не к рекурсивным!)
RDAP
Сначала небольшая скобка: в настоящее время, особенно в gTLD, RDAP должен стать новым стандартом. Это намного лучше, чем whois, поскольку он работает по протоколу JSON по протоколу HTTPS и позволяет получать обратно структурированные данные. Он также включает различие между поиском и запросом, которого нет в whois (в некоторых реестрах есть «проверка доступности домена», например, с помощью finger; для этого был протокол IETF, называемый IRIS D-CHK, но это было самое большее реализуется двумя реестрами и сжимается XML через UDP, так и не получил поддержки).
См. RF C 7480 §4 :
Клиенты используйте метод GET для получения тела ответа и используйте метод
HEAD для определения наличия данных на сервере.
Пример:
$ curl --head https://rdap.verisign.com/com/v1/domain/stackoverflow.com
HTTP/1.1 200 OK
Content-Length: 2264
Content-Type: application/rdap+json
Access-Control-Allow-Origin: *
Strict-Transport-Security: max-age=15768000; includeSubDomains; preload
$ curl --head https://rdap.verisign.com/com/v1/domain/stackoverflow-but-does-not-exist.com
HTTP/1.1 404 Not Found
Content-Type: application/rdap+json
Access-Control-Allow-Origin: *
Strict-Transport-Security: max-age=15768000; includeSubDomains; preload
(если вы это сделаете a GET в первом случае, вы получите документ JSON, который вы можете обработать с помощью jq
или аналогичного).
Обратите внимание, что «частичный поиск» запечен внутри этого нового протокола, см. 4.1. Частичный поиск по строке . Это очень простой случай, а не регулярное выражение: вы можете просто использовать подстановочный знак. Конечно, RDAP-серверы реестра не обязаны его реализовывать. и в меньшей степени Протокол доступа к регистрационным данным (RDAP) Возможности обратного поиска
Подробнее о RDAP:
Итак, даже если вы примените решение DNS, тогда whois, Я по-прежнему настоятельно рекомендую вам перейти на DNS, а затем на RDAP. Предупреждение: серверы RDAP нескольких реестров и регистраторов в настоящее время плохо себя ведут / не соблюдают спецификацию. Это будет исправлено в будущем, когда вступит в силу соблюдение требований ICANN и RDAP действительно начнет затмевать whois.
API регистраторов
Различные регистраторы предоставляют вам доступ к API, который будет включать поиск для доступных доменных имен и / или получения списка доменных имен (например, удаление имен и т. д. c.). То, что предоставляет каждый регистратор, и при каких ограничениях, конечно, будут разные, поэтому невозможно ответить вам там. Но для любого серьезного исследования это будет первой остановкой: go к предпочтительному регистратору и спросите его, какие услуги он может оказать вам в вашем случае.
Очевидно, это будет зависеть от того, какой TLD является регистратором. аккредитован в: регистраторы, аккредитованные в реестре, имеют действующий канал, не открытый c - с использованием протокола под названием EPP - для проверки существования доменных имен.
массовый доступ к Whois
Это существует, но есть практически невозможно использовать. Что касается gTLD, регистраторы заключают договор с ICANN. Если вы прочитаете их контракт , вы увидите следующее:
3.3.6 [..] Регистратор предоставляет третьей стороне массовый доступ к данным, к которым будет предоставлен доступ c в соответствии с Подразделом 3.3.1, на следующих условиях:
3.3.6.1 Регистратор должен сделать полную электронную c копию данные доступны не реже одного (1) раза в неделю для загрузки третьими сторонами, которые заключили соглашение о массовом доступе с Регистратором.
3.3.6.2 Регистратор может взимать ежегодную плату, не превышающую 10 000 долларов США, для такого массового доступа к данным.
Итак, теоретически вы можете go каждому регистратору и запрашивать его у провайдера «массовый доступ к Whois», что означает более или менее полный дамп данных, но:
- , как написано в контракте выше, это может быть дорогостоящим (существует более 1000 регистраторов, и, поскольку вы не можете заранее знать, где зарегистрирован домен, вам необходимо получить все)
- данные не будут бесплатными sh
- что касается файлов зоны ниже, это не живой запрос / ответ, вам нужно будет загрузить все l данные, хранить их, обрабатывать и использовать.
Zonefiles (gTLD)
Опять же, это в основном относится к gTLD по причинам, изложенным сразу после, но см. следующий раздел для других случаях.
Это не позволяет вам выполнять запросы в реальном времени, поскольку вам нужно загружать данные (один раз в день, если вы хотите sh), хранить их где-нибудь в своей инфраструктуре и в формате, который актуально для запросов, которые вам нужно выполнить после (РСУБД может быть здесь не лучшим хранилищем).
Но это «самое простое» и самое широкое решение вашей проблемы.
Согласно их Согласно контракту с ICANN, все реестры gTLD обязаны предоставлять бесплатный доступ к своим файлам зон. Файл зоны будет содержать все опубликованные доменные имена в данном TLD. Это подмножество всех зарегистрированных имен (сложно сказать, сколько, но в диапазоне одного di git процента, если даже так), потому что вы можете зарегистрировать доменные имена без серверов имен (следовательно, они не публикуются) или домен может быть приостановлен по разным причинам и, следовательно, исчезнуть из файла зоны. Таким образом, вы получите такое же количество ложноотрицательных результатов, как и при использовании живых DNS-запросов: вы не получите никаких данных (фактически NXDOMAIN) для некоторых доменов, но на самом деле они зарегистрированы (и, следовательно, снова не доступны для регистрации).
Итак, все начинается здесь: https://www.icann.org/resources/pages/czds-2014-03-03-en и раздел помощи для пользователей: https://czds.icann.org/help
Вам нужно будет создать учетную запись, подписать договор в нем описывается, что вы можете и чего не можете делать с этими данными, а затем вы сможете загружать ежедневные файлы зон для каждого TLD. Большинство, если не все gTLD, помещают туда свои файлы зон. Возможно, некоторые из них работают по-другому, поэтому вам нужно будет выполнить поиск.
Файл зоны будет в формате DNS «master zonefile». Так вы увидите в них записи DNS. Вам нужно обработать только «NS», и вы увидите все доменные имена. Вам нужно будет их нормализовать (регистр, конечная точка и т. Д. c.), Поскольку содержимое может варьироваться от одного файла к другому.
Если у вас есть ежедневный список доменных имен, вы можете примените любой инструмент, который вы хотите найти в них, включая регулярные выражения. Однако будьте осторожны с ограничениями ЦП и ОЗУ, которые вы можете создать, в зависимости от того, как вы храните данные. Необработанный файл зоны .com
, например, имеет размер 13 ГБ.
По сравнению с живыми DNS-запросами, самый большой недостаток заключается в том, что он не работает (данные могут быть старше 24 часов), и вам необходимо загрузить файлы прежде чем вы сможете делать все, что захотите, но самым большим преимуществом является то, что у вас есть список «всех» доменов локально, поэтому вы можете применять гораздо более мощные инструменты для поиска в них.
Zonefiles (не gTLD)
За пределами gTLD, то есть в ccTLD, редко доступны полные файлы зон, потому что многие операторы ccTLD считают, что это проприетарные или общедоступные данные, и что никто не имеет действительного бизнеса, получающего их, поэтому они недоступны .
Есть, однако, примеры счетчиков:
- хотя сейчас у меня нет примеров, но я почти уверен, что некоторые ccTLD все еще могут разрешать доступ к зонным файлам (подлежит определению)
- также иногда случается, что некоторые серверы имен настроены неправильно и, следовательно, принимают ответы DNS
AXFR
, что означает, в основном, загрузку файла зоны - некоторые реестры имеют инициативу «открытых данных», поэтому вы можете получить список всех доменных имен, но может быть устаревшим через несколько месяцев. AFNI C (
.fr
) является одним из таких случаев: https://www.afnic.fr/en/about-afnic/news/general-news/9522/show/opendata-data-from-the-fr-tld-to-serve-innovation.html - некоторые реестры публикуют sh как «новые домены за последние 24 часа» или что-то подобное. Если вы загружаете список «регулярно», в какой-то момент вы получаете все данные. Опять же, AFNI C делает это: https://www.afnic.fr/en/products-and-services/services/daily-list-of-registered-domain-names/ (даже если это изображение, а не текстовый список, но это никому не мешает получать из него реальные данные)
PS: творческое использование поисковых систем (см., Например, модификатор site:
) также может помочь; конечно, они видят только существующие веб-сайты, и доменное имя может быть полностью зарегистрировано, но без разрешения веб-сайта на нем.