Друзья, добро пожаловать! Ниже вас ждет история о том, как было проанализировано 20 миллионов доменных имен и что из этого вышло. Результаты можно посмотреть скачав csv-файл или восстановив дамп базы данных в PostgreSQL.
При желании можно поиграться с исходниками здесь или сразу с контейнерами, используя
version: "2"
services:
app:
image: danieljust/domain-finder-v1
tty: true
ports:
- "3000:3000"
rabbit:
image: rabbitmq:3
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
POSTGRES_USER: postgres
POSTGRES_DB: postgres
Инструкцию можно найти также на гитхабе
Приятного чтения!
Disclaimer!
Все, что вы увидите и прочтете в данной статье, не является призывом и агитацией к домейнингу, а уж тем более к киберсквоттингу. Все действия были совершены ради интереса и, как говорится, «for fun».
Вступление
У многих компаний, желающих провести ребрендинг или только-только выходящих на широкий рынок, возникает желание подобрать красивый домен.
Любопытства ради, было решено в качестве красивых доменов посмотреть короткие 1-3 символьные домены.
Терминология
- top-level domain (TLD) — домен верхнего уровня;
- second-level domain (SLD) — домен второго уровня.
Пример vk.com — в данном случае vk = SLD, com = TLD.
Структура таблицы в базе данных
id | sldlength | tld | domain | price | roubleprice | available | definitive |
---|---|---|---|---|---|---|---|
1 | 1 | actor | 1.actor | 20000 | 1199520 | True | True |
id
— идентификатор записи
sldlength
— длина домена второго уровня
tld
— домен верхнего уровня
domain
— собственно доменное имя
price
— цена в долларах
roubleprice
— цена в рублях
available
— флаг, показывающий доступность домена
definitive
— флаг, показывающий был ли флагavailable
сверен с реестром
Результат
В процессе работы были замечены интересные сочетания доменных имен, ознакомиться с ними можно в таблице ниже.
domain | roubleprice |
---|---|
2.pizza | 47981 |
0.fail | 23991 |
a.xyz | 1199520 |
ab.xyz | 299880 |
ad.money | 11876 |
as.mba | 2400 |
as.guru | 11996 |
at.network | 23991 |
js.army | 47981 |
2.pizza — Идеально подойдет для начинающей пиццерии;
0.fail — для сверхнадежного чего-нибудь;
a.xyz, ab.xyz — для желающих быть поближе к гуглу;
ad.money — для рекламной площадки;
as.guru, as.mba — для консультационных фирм;
at.network — для фирм, связанных с администрированием сетей;
js.army — пролетарии всех стран, объединяйтесь.
Большинство двухсимвольных доменов, если и оказывались свободными, то их цена кусалась.
В двухсимвольных доменах верхнего уровня стран было найдено четыре свободных домена (все в чешской зоне), да и к тому же за небольшие деньги в 1000 рублей.
В трехсимвольных доменах верхнего уровня стран нашлось куда больше свободных и по доступной цене.
Количество общих доменов верхнего уровня многократно преобладает над доменами стран (домены стран составляют лишь 4% от общего числа свободных доменных имен)
Путь к результатам
Этап 1. Начало
За основу возможных символов в SLD были взяты -1234567890abcdefghijklmnopqrstuvwxyz
(всего 37 символов).
Выясняется, что имеем мы число размещений с повторениями p^n.
Итого $inline$ 37+37*37+37*37*37 = 52059 $inline$ вариантов.
Поскольку SLD не может начинаться и заканчиваться дефисом, исключим такие случаи и получим 49284.
Но это только начало.
Этап 2. Выбор API
Множество сайтов позволяют узнать, занят ли указанный домен через веб-интерфейс.
Для выполнения поставленной задачи ручного ввода данных явно недостаточно и требуется API, способное решить проблему.
В процессе поиска были встречены и отброшены следующие варианты:
- предоставьте нам паспортные данные, а мы вам доступ к API;
- заплатите нам всего лишь раз (от 5 до 15 долларов) и получите пожизненный доступ к API;
- оплата доступа к API раз в месяц;
- каждый запрос к API стоимостью около $0,01.
Но душа хотела привнести что-нибудь полезное в мир open-source да еще и максимально бесплатно.
Решением проблемы стало данное API.
Его плюсы:
- бесплатный;
- позволяет обработать до 500 доменов за один запрос;
- проработанная API документация.
Его минусы:
- ограниченное количество запросов в минуту;
- ответы от сервера не всегда совпадают с тем, что предлагает UI.
Например, ответ API может содержать информацию, что сайт занят, и его нельзя купить. В это же время, данное доменное имя может быть доступно для покупки через UI.
Как быть уверенным в доступности домена?
В процессе общения с технической поддержкой, было выяснено, что при финальном подтверждении покупки выбранного домена, производится контрольная проверка его доступности.
Из наблюдений, флаг definitive
позволяет с большей вероятностью сделать вывод о занятости доменного имени.
Этап 3. Выбор инструментов и подготовка решения
С помощью API godaddy можно получить список TLD, в которых возможно приобрести доменные имена.
Из них выбираются TLD состоящие из одного слова (были убраны *.com.ru и т.д.). В итоге 400 TLD. Легкая арифметика приводит нас к $inline$ 49284*400 = 19 713 600 $inline$ доменов к проверке.
API godaddy может обработать до 500 доменов за 1 запрос, но имеет ограниченное количество запросов в 1 минуту.
В соответствии с вышесказанным, алгоритм работы программы был следующим:
- разделить все необходимые к проверке домены на куски по 5000 доменов;
- положить полученные куски в RabbitMQ очередь;
- взять порцию данных;
- поделить по 500 доменов. Отправить 10 запросов;
- обработать данные, положить информацию о свободных доменах в базу данных;
- подождать 20 секунд;
- при наличии сообщений в очереди выполнить пункты 3-6 снова.
Для удобства PostgreSQL и RabbitMQ были подняты как docker-контейнеры.
Этап 4. Анализ данных
После того, как с работой скрипта было покончено, возникла необходимость выудить из полученных данных что-нибудь интересное и полезное.
Данные любезно помещены в domains.sql и domains.csv.
Под фильтрацией в дальнейшем подразумевается поиск найденных SLD в списке самых частых английских сочетаний букв в соответствии с этим источником
Из пары графиков выше, можно сделать вывод, что количество свободных доменных имен, содержащих частоупотребляемые сочетания букв английского алфавита стремится к нулю.
Пятерка самых дорогих доменных имен
domain | roubleprice |
---|---|
ads.cloud | 11 906 200 |
vod.cloud | 11 852 400 |
usa.cloud | 11 852 400 |
seo.cloud | 11 852 400 |
vip.cloud | 11 852 400 |
Пятерка самых дешевых доменных имен
domain | roubleprice |
---|---|
xt1.company | 590 |
xt1.casa | 590 |
xsz.company | 590 |
xt1.click | 590 |
xt1.business | 590 |
Заключение
That's all Folks!
Прошерстив интернет было выявлено множество забавных доменов. А самое главное, что новым компаниям не стоит отчаиваться: интересные доменные имена все еще свободны, осталось их только увидеть.
Автор: danieljust