[Перевод] Сколько доменных имён .com не используется?

При поиске свободного имена в зоне .com меня неприятно удивило количество уже занятых, но неиспользуемых доменов. Судя по всему, зарегистрированы все произносимые комбинации букв на всех основных языках мира. И даже непроизносимые короткие комбинации. То ли существует большой рынок доменов, то ли мне просто на ум приходят те же имена, что и всем остальным? Посмотрим на голую статистику…

В настоящее время зарегистрировано 137 миллионов доменных имён .com. По данным Verisign, в «активной зоне» по состоянию на 27.01.2019 года есть 137 756 106 доменов .com. Перед этим я сверил корректность цифры с файлом DNS-зоны.

Из них используется около трети (предприятия, личные веб-сайты, электронная почта и т. д.). Ещё треть, по-видимому, не используется, а последняя треть используется в различных спекулятивных целях.
Вот как используются домены (на выборке из 2188 штук):

ze4sg4l7m-fvv226rm4af_lgcow.png


Я начал краулинг со случайной выборки доменов верхнего уровня из DNS-файла зоны (файл скачан 21.01.2019, а краулинг продолжался до 23.01.2019), пока не достиг 100 000 валидных доменов (не все записи там валидные, некоторые выполняют роль ханипотов для ловли людей, которые нелегально распространяют файлы зоны, а примерно 1% являются нейм-серверами; после их исключения осталось 98 854 валидных доменов).

Для каждого домена я собрал следующее:

  • запись WHOIS;
  • все DNS-записи для доменов верхнего уровня и поддоменов www (DNS-запросом ANY напрямую к нейм-серверам, указанным в WHOIS-записи);
  • ответы HTTP и HTTPS (код состояния, заголовки и тела) для главной страницы домена верхнего уровня и поддомена www (невалидные SSL-сертификаты относили домен в категорию Error);
  • скриншот главной страницы в Mozilla Firefox 64.0 под Linux.


Сканирование заняло чуть более 48 часов с одного сервера в сингапурском дата-центре. Затем я запустил второй этап краулинга для всех доменов, которые не смогли подключиться по HTTP или HTTPS (в случае временных ошибок). И, наконец, для 2188 доменов из выборки я вручную проверил все ошибки на случай, если краулер вышел по таймауту или события DOM оказались заблокированы в JavaScript.

Затем я написал вспомогательный скрипт для ускорения ручной классификации сайтов на основе их скриншота и содержимого.

3c99fd348c68bac6582d0cb4ea9e0223.png
Скрипт представляет возможные категории в виде списка кнопок с содержимым по умолчанию

С помощью этого скрипта я выполнил категоризацию сайтов за два дня. Не все сайты пришлось различать вручную: в некоторых случаях категория была очевидной по полю , так что я применил регулярные выражения. В других случаях скриншота оказалось недостаточно, поэтому пришлось вручную открывать домен в браузере для проверки.</p><p> <br /></p> <h3>Топ-10 регистраторов .com из выборки в 100 000 доменов</h3><p> <br /><img src="https://habrastorage.org/webt/eo/3h/tf/eo3htfccjlmoi5xqye74cxfum0c.png" alt="eo3htfccjlmoi5xqye74cxfum0c.png" /></p> <ul><li>GoDaddy зарегистрировал треть всех доменных имён. Это примерно 45 миллионов доменов. Из них на каждом третьем парковочные страницы. Иными словами, более 10% всех доменов .com в интернете размещают объявления GoDaddy.<br /></li> <li>Хотя в выборке 1851 регистратор, они управляются небольшим числом операторов. Например, только DropCatch.com контролирует более тысячи регистраторов: DropCatch.com 1000 LLC, DropCatch.com 1001 LLC, DropCatch.com 1002 и так далее; аналогичные схемы с номерами используют и другие регистраторы, но у некоторых не столь очевидные схемы.<br /></li> <li>За последний год зарегистрировано 25% доменов.</li> </ul> <p><br /></p> <h3>Возраст доменов из выборки в 100 000 штук (в годах)</h3><p> <br /><img src="https://habrastorage.org/webt/qa/o-/9-/qao-9-9srvrph8grw-bzzg7uz90.png" alt="qao-9-9srvrph8grw-bzzg7uz90.png" /><br />Список категорий дополнялся по мере работы. Например, я не ожидал большого количества доменов для азартных игр (под алиасами).</p> <p>Для большинства категорий приводится случайная выборка скриншотов.</p> <h2>Контент (31% или ~43 млн)</h2><p> <br />Контент — домен с любым уникальным контентом. Это категория по умолчанию, куда я помещал любые сайты в случае сомнений.</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/4c8/1d6/96a/4c81d696a3721535a31f82fe317d55a2.jpg" alt="4c81d696a3721535a31f82fe317d55a2.jpg" /></p> <h2>Реклама (23% или ~31 млн)</h2><p> <br />Обратите внимание, что половина доменов в этой категории — страницы паркинга GoDaddy, на которых GoDaddy размещает объявления Google по ключевым словам, связанным с доменным именем.</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/ba9/be2/68c/ba9be268c188ecb75d59b95ad20f6838.jpg" alt="ba9be268c188ecb75d59b95ad20f6838.jpg" /></p> <h2>Нет веб-сервера (11% или ~16 млн)</h2><p> <br />Если мне не удалось подключиться или получить валидный ответ по порту 80 или 443 для домена верхнего уровня или субдомена www, <strong>при этом</strong> у домена нет MX-записи, я помещал его в эту категорию. Некоторые из этих доменов, вероятно, используются как-то иначе, например, как FTP или игровые сервера, но мне кажется, таких меньшинство. Ещё сюда попали любые сайты на IPv6, потому что сервер краулера был настроен только для IPv4.</p> <h2>Пусто (9,2% или ~13 млн)</h2><p> <br />Пустой домен — тот, для которого веб-сервер отвечает на запросы, но возвращает пустые страницы, ошибки 404 или незаполненные шаблоны (например, установки WordPress по умолчанию).</p> <p>Разница между пустым и припаркованным доменом заключается в том, что пустой домен предположительно настроен пользователем, но содержимое ещё не добавлено.</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/d26/742/f10/d26742f10dd39a216c5a2aea15c22052.jpg" alt="d26742f10dd39a216c5a2aea15c22052.jpg" /></p> <h2>На продажу (7,1% или ~9,8 млн)</h2><p> <br />Многие домены выставляются на продажу через различных брокеров и торговые площадки. Почти половину из них, похоже, продаёт HugeDomains, хотя на их веб-сайте говорится лишь о «более 200 000» доменах, доступных для покупки. Я учитывал только домены от известных площадок или когда контактные данные не включались в состав рекламного объявления, потому что рекламные сети и брокеры часто врут, что представляют владельца домена (вместо этого я классифицировал все такие домены как объявления).</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/b32/537/57d/b3253757dd72507b0974e3ecc364fbaa.jpg" alt="b3253757dd72507b0974e3ecc364fbaa.jpg" /></p> <h2>Ошибка (5,7% или ~7,9 млн)</h2><p> <br />Если домен возвращал ошибку любого типа, будь то ошибка HTTP или ошибка на странице, я относил его к этой категории.</p> <p>Обратите внимание, что сюда могли случайно попасть некоторые приватные домены, если они использовали обычную аутентификацию, поскольку я не отличал 403 Forbidden (из-за отсутствия базовых учётных данных для аутентификации) от других ошибок.</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/94d/213/53d/94d21353daa2828c29c99926f808a24a.jpg" alt="94d21353daa2828c29c99926f808a24a.jpg" /></p> <h2>Запаркован (4,8% или ~6,5 млн)</h2><p> <br />Запаркованные домены отображают страницу регистратора или сообщают, что домен ещё не настроен. Чтобы попасть в эту категорию, домен должен выдавать страницу без внешней рекламы. Он может рекламировать собственные услуги, но не может размещать объявления из рекламной сети.</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/789/407/ee0/789407ee0dd267d2c24979ebc2204dd6.jpg" alt="789407ee0dd267d2c24979ebc2204dd6.jpg" /></p> <h2>Азартные игры (3,0% или ~4 млн)</h2><p> <br />Почти все сайты этой категории на китайском языке и работают под алиасами: часто это короткие строки цифр или согласных (например, 17770012 или tdwhtr). Они следуют общим шаблонам и содержат похожие изображения, часто с автоматически генерируемыми логотипами. Я предполагаю, что их цель — привлечь людей на удачу.</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/5b2/19e/a1f/5b219ea1f00ba36996740fafa1c9eb87.jpg" alt="5b219ea1f00ba36996740fafa1c9eb87.jpg" /></p> <h2>Почта (2,6% или ~3,5 млн)</h2><p> <br />Если домен не попадал ни в какую категорию, а его MX-записи в DNS (для email), я относил его в категорию «Почта». Не проверял, работает ли почтовый сервер или доставка. Вполне возможно, что многие из этих доменов не используются для электронной почты.</p> <h2>Редирект (1,1% или ~1,6 млн)</h2><p> <br />Сюда отнесены «домены тщеславия», которые отсылают на страницы Facebook, альтернативные названия компаний и т. д.</p> <h2>Приватный (0,64% или ~0,9 млн)</h2><p> <br />Это сайты, на которых никакой контент не доступен без авторизации (или, в некоторых случаях, регистрации).</p> <p><img src="https://habrastorage.org/getpro/habr/post_images/c23/00e/9a5/c2300e9a578b6ca52ac6af32e5d8ec9a.jpg" alt="c2300e9a578b6ca52ac6af32e5d8ec9a.jpg" /></p> <h2>Порно (0,59% или ~0,8 млн)</h2><p> <br />Как и игорные сайты, многие порносайты работает под разными алиасами. Веб-сайты преимущественно на китайском языке, и домены следуют аналогичным шаблонам именования. Поскольку многие сайты отображают порнографический материал напрямую (без предупреждения), я не делал скриншоты.</p> <p class="copyrights"><span class="source">© <a target="_blank" rel="nofollow" href="https://habr.com/ru/post/440600/?utm_campaign=440600">Habrahabr.ru</a></span></p> </div> <br> <!--<div align="left"> <script type="text/topadvert"> load_event: page_load feed_id: 12105 pattern_id: 8187 tech_model: </script><script type="text/javascript" charset="utf-8" defer="defer" async="async" src="//loader.topadvert.ru/load.js"></script> </div> <br>--> <div style="padding-left: 20px;"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2514821055276660" crossorigin="anonymous"></script> <!-- PCNews 336x280 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2514821055276660" data-ad-slot="1200562049" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <!-- comments --> <noindex> <div style="margin: 25px;" id="disqus_thread"></div> <script type="text/javascript"> var disqus_shortname = 'pcnewsru'; var disqus_identifier = '880449'; var disqus_title = '[Перевод] Сколько доменных имён .com не используется?'; var disqus_url = 'http://pcnews.ru/blogs/%5Bperevod%5D_skolko_domennyh_imen_com_ne_ispolzuetsa-880449.html'; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script> <!--<noscript>Please enable JavaScript to view the <a rel="nofollow" href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>--> <!--<a href="http://disqus.com" rel="nofollow" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>--> </noindex> </div> <br class="clearer"/> </div> <br class="clearer"/> <div id="footer-2nd"></div> <div id="footer"> <br/><br/> <ul class="horz-menu"> <li class="about"><a href="/info/about.html" title="О проекте">О проекте</a></li> <li class="additional-menu"><a href="/archive.html" title="Архив материалов">Архив</a> </li> <li class="additional-menu"><a href="/info/reklama.html" title="Реклама" class="menu-item"><strong>Реклама</strong></a> <a href="/info/partners.html" title="Партнёры" class="menu-item">Партнёры</a> <a href="/info/legal.html" title="Правовая информация" class="menu-item">Правовая информация</a> <a href="/info/contacts.html" title="Контакты" class="menu-item">Контакты</a> <a href="/feedback.html" title="Обратная связь" class="menu-item">Обратная связь</a></li> <li class="email"><a href="mailto:pcnews@pcnews.ru" title="Пишите нам на pcnews@pcnews.ru"><img src="/media/i/email.gif" alt="e-mail"/></a></li> <li style="visibility: hidden"> <noindex> <!-- Rating@Mail.ru counter --> <script type="text/javascript"> var _tmr = window._tmr || (window._tmr = []); _tmr.push({id: "93125", type: "pageView", start: (new Date()).getTime()}); (function (d, w, id) { if (d.getElementById(id)) return; var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id; ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js"; var f = function () { var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s); }; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "topmailru-code"); </script> <noscript> <div style="position:absolute;left:-10000px;"> <img src="//top-fwz1.mail.ru/counter?id=93125;js=na" style="border:0;" height="1" width="1" alt="Рейтинг@Mail.ru"/> </div> </noscript> <!-- //Rating@Mail.ru counter --> </noindex> </li> </ul> </div> <!--[if lte IE 7]> <iframe id="popup-iframe" frameborder="0" scrolling="no"></iframe> <![endif]--> <!--<div id="robot-image"><img class="rbimg" src="i/robot-img.png" alt="" width="182" height="305" /></div>--> <!--[if IE 6]> <script>DD_belatedPNG.fix('#robot-image, .rbimg');</script><![endif]--> </div> <!--[if lte IE 7]> <iframe id="ie-popup-iframe" frameborder="0" scrolling="no"></iframe> <![endif]--> <div id="footer-adlinks"></div> <noindex> <!--LiveInternet counter--><script type="text/javascript"> document.write("<a rel='nofollow' href='//www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t45.6;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";"+Math.random()+ "' alt='' title='LiveInternet' "+ "border='0' width='1' height='1'><\/a>") </script><!--/LiveInternet--> <!-- Rating@Mail.ru counter --> <script type="text/javascript"> var _tmr = window._tmr || (window._tmr = []); _tmr.push({id: "93125", type: "pageView", start: (new Date()).getTime()}); (function (d, w, id) { if (d.getElementById(id)) return; var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id; ts.src = "https://top-fwz1.mail.ru/js/code.js"; var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);}; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "topmailru-code"); </script><noscript><div> <img src="https://top-fwz1.mail.ru/counter?id=93125;js=na" style="border:0;position:absolute;left:-9999px;" alt="Top.Mail.Ru" /> </div></noscript> <!-- //Rating@Mail.ru counter --> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function () { try { w.yaCounter23235610 = new Ya.Metrika({ id: 23235610, clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, trackHash: true }); } catch (e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript> <div><img src="https://mc.yandex.ru/watch/23235610" style="position:absolute; left:-9999px;" alt=""/> </div> </noscript> <!-- /Yandex.Metrika counter --> <!-- Default Statcounter code for PCNews.ru http://pcnews.ru--> <script type="text/javascript"> var sc_project=9446204; var sc_invisible=1; var sc_security="14d6509a"; </script> <script type="text/javascript" src="https://www.statcounter.com/counter/counter.js" async></script> <!-- End of Statcounter Code --> <script> (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-46280051-1', 'pcnews.ru'); ga('send', 'pageview'); </script> <script async="async" src="/assets/uptolike.js?pid=49295"></script> </noindex> <!--<div id="AdwolfBanner40x200_842695" ></div>--> <!--AdWolf Asynchronous Code Start --> <script type="text/javascript" src="https://pcnews.ru/js/blockAdblock.js"></script> <script type="text/javascript" src="/assets/jquery.min.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/jquery.json.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/jquery.form.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/jquery.easing.1.2.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/jquery/effects.core.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/browser-sniff.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/scripts.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-utils.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-auth.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-fiximg.js"></script> <script type="text/javascript" src="/assets/a70a9c7f/js/pcnews-infobox.js"></script> </body> </html>