Как мы собирали базу всех доменов мира

Однажды, мы в своей хостинг-компании решили провести исследование рынка хостинга. Было просто интересно какую долю мы занимаем на местном рынке и какую в общем масштабе. Встал вопрос, где взять базу доменов для исследования. К моему удивлению, такой базы не существовало и до сих пор не существует. И вот что было дальше ...

Как мы собирали базу всех доменов мира

Для каких-то отдельных зон базу можно было довольно просто взять, но, глобально, этого было недостаточно для полноценного исследования. Список зон можно посмотреть на 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 по поддержке актуальной базы доменных имён. Оказалось, что мы не зря мучались - такие базы оказались востребованы разными компаниями для собственных исследований. Если у кого-то есть идеи как и где можно получать актуальную информацию по зарегистрированным доменным именам, то буду рад любому комментарию, а также идеям по коммерческому (и не только) использованию базы доменов.

88
3 комментария

Пару лет назад для одного проекта также пытались собрать список всех существуюих доменов. По каким-то зонам все есть в открытом виде, а по каким-то такой информации нет в принципе. В итоге плюнули и за $4 купили актуальный список доменов, который уже собрали другие ребята - https://domains-monitor.com/

1
Ответить