Как мы собирали базу всех доменов мира
Однажды, мы в своей хостинг-компании решили провести исследование рынка хостинга. Было просто интересно какую долю мы занимаем на местном рынке и какую в общем масштабе. Встал вопрос, где взять базу доменов для исследования. К моему удивлению, такой базы не существовало и до сих пор не существует. И вот что было дальше ...
Для каких-то отдельных зон базу можно было довольно просто взять, но, глобально, этого было недостаточно для полноценного исследования. Список зон можно посмотреть на IANA .
Был начат поиск вариантов. Мы - ребята из отрасли и понимали, что ситуация с доменами меняется ежесуточно и недостаточно просто один раз скачать базу и успокоиться - нам нужен был постоянный доступ и полная автоматизация получения информации о доменах. К примеру, в зоне .com каждые сутки не продляется 100-140 тыс. доменов. Поэтому, через неделю, в нашей базе будут миллионы неактуальных доменов.
Зоны .ru .su .рф
Наши родные зоны .ru .su .рф мы быстро нашли и получили доступ на nic.ru - они их предоставляют партнёрам.
Зоны .com, .net .name
Потом, было решено победить зоны .com, .net как самые масштабные. Поиск привёл в Verisign - компания, которая предоставляет доступ к файлам зон. Там надо было заполнить какую-то бумажку и отправить. Изучив ответ оптимизма как-то поубавилось, т.к. по регламенту они не могли просто выслать пароли, а надо было звонить ночью (у них день) в колл-центр и на чистом инглише объяснять "вот ай вонт". У нас работал паренёк, который утверждал, что языком владеет. Вот он-то и раздобыл нам пароль. Это был обычный FTP-доступ. Немного повозившись с файлом мы превратили его в MySQL-базу. Надо сказать, что сервер нам понадобился довольно мощный, потому что 120 млн. записей (на тот момент) не хотели быстро залетать на слабом железе. Так у нас появились базы .com, .net, .name.
NewTLD
Уже тогда начал появляться сервис CZDS (Centralized Zone Data Service) от корпорации ICANN, где хранились новые зоны (newTLD), вроде, .shop, .moscow и т.д. Зарегистрировались, подали запрос, изучили, потратили несколько дней на настройку скриптов и вуаля, у нас появилось ещё несколько десятков млн. доменов.
На закуску
Оставалась ещё куча национальных зон доменов, регистраторы которых никак не хотят делиться данными о доменах. К примеру, такие зоны как .de, .jp, .kr и десятки других, а это десятки миллионов доменов. Где их брать? Можно, конечно, купить на разных площадках, но покупать постоянно будет накладно. Но дело не только в деньгах. После изучения продавцов стало понятно, что автоматизировать процесс не удастся - никто не предоставлял хоть какого-то API. Автоматизация была принципиальным моментом, т.к. трудозатраты на поддержание базы ожидались солидные.
Было принято решение собирать самим и пришлось разработать несколько методик:
Первая - заключалась в том, что есть некий словарь, бегая по которому, робот проверяет возможные домены на занятость по whois или 200 ОК. Вторая - есть сервис Rapid7, который собирает A-записи откуда только можно. Мы брали второй и третий уровень доменов и тоже проверяли на занятость.
Надо сказать, что проверка на занятость только кажется простой. У каждого whois-сервиса свои регламенты и форма ответа. Причём, они зачастую меняются и приходится отлавливать такие ситуации. Иногда, какой-то whois вдруг давал ответ вроде "query limit" и переставал отдавать информацию. Пришлось создать целую ферму VPS, чтобы информация собиралась с разных IP и делать специальные задержки.
В целом, на всю настройку, ушло пару месяцев труда. И ещё полгода на доведения процесса до ума и автоматизации на 95%. Полностью автоматизировать не получится - что-то где-то ломается, изменяется и требует внимания.
Кому это было надо?
В итоге, у нас получился собственный сервис domengood.ru по поддержке актуальной базы доменных имён. Оказалось, что мы не зря мучались - такие базы оказались востребованы разными компаниями для собственных исследований. Если у кого-то есть идеи как и где можно получать актуальную информацию по зарегистрированным доменным именам, то буду рад любому комментарию, а также идеям по коммерческому (и не только) использованию базы доменов.
Комментарий удален модератором
Комментарий удален модератором
Пару лет назад для одного проекта также пытались собрать список всех существуюих доменов. По каким-то зонам все есть в открытом виде, а по каким-то такой информации нет в принципе. В итоге плюнули и за $4 купили актуальный список доменов, который уже собрали другие ребята - https://domains-monitor.com/
Если интересуют русскоязычные домены, см. https://letsearch.ru/