Как найти количество доменов

froll wrote in ru_webdev

May 18 2006, 03:05

Category:

  • IT
  • Cancel

Как определить количество доменов, зарегистрированных на одной записи?

Я захожу на nic.ru, залезаю в whois, набираю helloween.ru и с удовольствием узнаю, что я все еще его администрирую :))).
А можно как-то узнать, сколько на меня еще зарегистрировано доменов?
Подозреваю, что многим киберсквоттерам это как-то становится известно… только не говорите, что все они в nic.ru работают ;)))…

Время на прочтение
7 мин

Количество просмотров 9.5K

Давным-давно перестал работать 1stat.ru — откровенно говоря, для нас это была трагедия (сейчас вроде он как-то работает).

Рабочий день обычно начинался с чашечки кофе и приятного просмотра значений прироста доменов. Конечно же, такие метрики не показывают ни успешность компании, ни ее капитализацию, ни тип клиентов, которые размещаются у компании. Но, несмотря на это, косвенно можно оценить динамику роста или деградации компании — если количество доменов на NS серверах растет, а не падает — это хорошо. Как показала практика, это, так или иначе, отражает положение дел на рынке.

Первая версия firststat.ru

Недолго думая, накидали скриптик с таблицей, где собирали значения по NS серверам для домена и делали небольшую статистику. Актуальность таблицы была не самая хорошая, так как мы суммировали все домены на всех серверах и просто делили их на количество серверов, которое со временем у некоторых провайдеров менялось. Но это не мешало нам устраивать корпоративы при передвижении вверх по рейтингу =). В этой реализации не было ничего интересного, она была сделана за один вечер и рассказывать о ней лень.

Вторая версия firststat.ru

Примерно год назад pavelodintsov прислал интересную статистику по распределению доменов по автономным системам.

А также ссылку на код, который собирает данную статистику. Сам сбор был оформлен как запуск разных скриптов bash, perl и sqlite. При этом алгоритм был достаточно простой и интересный, в принципе, от Павла, как от талантливого специалиста, ничего другого и не стоило ожидать, правда работал он достаточно медленно и собирал данные только по AS.

  • запрашивался у регистратора список доменов в зонах ru, su и рф
  • по каждому из доменов запрашивалась А запись
  • получали BGP fullview и делали соответсвие сети к AS
  • на основе этих данных собирали статистику по распределению доменов по автономным адресам

Алгоритм был улучшен — полностью переписан на Python, введены исторические таблицы, добавлен сбор и хранение всех записей из DNS. Также написали простую обертку для отображения данных firststat.ru, которую при наличии времени и интереса из вне будем обязательно улучшать.

Сбор статистики

Оригинальный проект: https://github.com/pavel-odintsov/ru_open_statistics
Мой форк, переписанный на Python: https://github.com/AlexeyManikin/domain_statistic

Для работы необходимы модули Python:

  • MySQLdb
  • dnspython
  • SubnetTree
  • psutil >= 2.2

Также необходим сервер MySQL и крайне желательно быстрый DNS резолвер, так как основная часть нагрузки приходится на него. Необходимо запросить все записи (A, AAAA, SOA, TXT, MX, SRV, NS) для каждого из 6000000+ доменов. В первое время также собирал информацию с аналогичных проектов для проверки корректности результатов.

Структуру проекта описывать, полагаю, не имеет смысла, код достаточно простой для понимания.
update_as_info.py — обновляет данные по AS
update_domain.py — обновляет данные по доменам
update_statistic.py — агрегирует статистику в БД

Структура БД

Ниже приведу таблицы с полями, которые могут быть полезны при выборке данных:

as_list: таблица соответствия номера AS и ее описания, страны

  • id — номер AS
  • descriptions — описание
  • country — страна

domain: таблица, в которой хранится текущее состояние домена, полагаю, большая часть полей понятна из названия

  • domain_name — FQDN
  • registrant — через кого был зарегистрирован домен
  • tld — зона для быстрого поиска
  • register_date — дата регистрации
  • register_date_end — дата окончания регистрации
  • free_date — дата освобождения домена
  • delegated — домен делегирован или нет
  • a1…a4 — A записи домена
  • ns1…ns4 — NS записи домена, именно те, которые отдает DNS
  • mx1…mx4 — MX записи домена
  • txt — TXT запись домена
  • asn1…asn4 — номер AS для соответствующей А записи
  • aaaa1…aaaa4 — AAAA (ipv6) записи домена
  • cname — CNAME записи домена

domain_history: содержит историю изменений записей в таблице domain, помимо всех полей, которые есть в domain, присутствуют еще поля:

  • domain_id — ссылка на запись в domain
  • date_start — дата, с которой данная информация была актуальной
  • date_end — дата, когда информация перестала быть актульаной

Представленные ниже таблицы содержат агрегируемую информацию:

  • domain_count_statistic — количество доменов в разных зонах по дням
  • as_count_statistic — количество доменов на AS по дням
  • mx_count_statistic — количество доменов, использующих MX, по дням
  • ns_count_statistic — количество доменов на NS серверах по дням
  • registrant_count_statistic — статистика по регистраторам по дням
  • a_count_statistic — статистика по количеству доменов на одном IP по дням
  • cname_count_statistic — статистика по данным CNAME по дням

Всю статистику можно выбрать из таблиц domain и domain_history, но запросы достаточно долгие. Решили для ускорения сделать отдельные таблицы.

Нагрузка на сервер

Как соучредителю хостинга, после долгих уговоров мне все-таки выделили сервер =) Соответственно, статистику на постоянной основе начал собирать с января 2016, правда иногда забывал включать после перезагрузки.
Все это дело работает на сервере 2 x Intel® Xeon® CPU E5-2620 0 @ 2.00GHz с 32 Gb RAM.
Для сбора данных и агрегирования статистики по всем доменам требуется примерно 11 часов. На текущий момент в таблице domain_history содержится 41436250 записей, общий размер БД 23 гигабайта. Количество потоков pdns и параллельных обработчиков выбиралось экспериментальным путем остановился на обработки в 150 потоков.

Графики нагрузки CPU, LA и потребления памяти приведены ниже:

Запуск скрипта сбора статистики

Самый простой вариант запуска через Docker. Устанавливаем Docker и git

    sudo apt-get update
    sudo apt-get install docker.io git

скачиваем репозиторий

    cd /home
    git clone https://github.com/AlexeyManikin/domain_statistic.git

собираем образы

    cd domain_statistic/docker
    docker-compose build

запускаем контейнеры

    docker-compoces up -d

Доступ к базе

Если кому интересно, создал копию базы, открыл доступ к БД в режиме ReadOnly, можно зайти поиграться (ограничение в 300 подключений). Если будет хабраэффект — будет тупить =).
Сервер: manikin.beget.ru
Порт: 3310
Пользователь: amanikin_stat
Пароль: openstatistic
База: domain_statistic

Если кто не умеет пользоваться консолью, установил PhpMyAdmin: pma.amanikin.ru

Интересные SQL, которые нам пригодились:

#  Количество доменов, которые прописали вместо MX NS-сервера
mysql> SELECT count(*) FROM domain WHERE mx1 LIKE 'ns1.%';
+----------+
| count(*) |
+----------+
|     1064 |
+----------+
1 row in set (22.05 sec)

# Наоборот
mysql> SELECT count(*) FROM domain WHERE ns1 LIKE 'mx%';
+----------+
| count(*) |
+----------+
|      436 |
+----------+
1 row in set (0.01 sec)


# Количество доменов, которые будут разделегированы, если не будут в ближайшее время оплачены
mysql> SELECT count(*) FROM domain WHERE register_date_end <= '2016.05.27';
+----------+
| count(*) |
+----------+
|   231235 |
+----------+
1 row in set (27.99 sec)

# На некоторых таблицах делать выборки, используя LIKE, крайне накладно, поэтому при выборках использовали FULLTEXT INDEX.
# К примеру, выбрать из таблицы domain, где более 6 млн. записей, все домены со словом habrahabr можно так
mysql> SELECT domain_name FROM domain WHERE MATCH (domain_name) AGAINST ('+habrahabr*' IN BOOLEAN MODE);
+---------------+
| domain_name   |
+---------------+
| habrahabrs.ru |
| habrahabr.ru  |
| habrahabra.ru |
| habrahabr.su  |
| habrahabru.ru |
+---------------+
5 rows in set (2.18 sec)
# Для сравнения, аналогичный запрос с использованием LIKE выполняется около минуты. 

# выбираем кол-во доменов, у которых в ns серверах содержится слово beget
mysql> SELECT count(*) FROM domain USE INDEX(ns_all_ft) WHERE MATCH (ns1,ns2,ns3,ns4) AGAINST('+beget*' IN BOOLEAN MODE)
+----------+
| count(*) |
+----------+
|   224715 |
+----------+
1 row in set (2.18 sec)

# Для выборки только по ru доменам надо добавить условие tld = 'ru'

Или как менялись DNS для домена habrahabr.ru

Результат выборки

mysql> select * from domain_history where domain_id = '1717034' G 
*************************** 1. row ***************************
               id: 1717033
        domain_id: 1717034
       date_start: 2015-07-31
         date_end: 2015-09-18
      domain_name: habrahabr.ru
       registrant: registrator-ru
              tld: ru
    register_date: 2006-04-18 00:00:00
register_date_end: 2016-04-18 00:00:00
        free_date: 2016-05-19 00:00:00
        delegated: Y
               a1: 178.248.233.33
               a2: NULL
               a3: NULL
               a4: NULL
              ns1: ns1.habradns.net.
              ns2: ns2.habradns.net.
              ns3: ns3.habradns.net.
              ns4: NULL
              mx1: alt1.aspmx.l.google.com.
              mx2: alt2.aspmx.l.google.com.
              mx3: aspmx.l.google.com.
              mx4: aspmx2.googlemail.com.
              txt: mailru-verification: 78856df53544c6fd v=spf1 include:spf.habramail.net include:aspmx.googlemail.com ~all
             asn1: 197068
             asn2: NULL
             asn3: NULL
             asn4: NULL
            aaaa1: NULL
            aaaa2: NULL
            aaaa3: NULL
            aaaa4: NULL
            cname: NULL
         nserrors: 
*************************** 2. row ***************************
               id: 15762868
        domain_id: 1717034
       date_start: 2015-09-18
         date_end: 2016-04-12
      domain_name: habrahabr.ru
       registrant: registrator-ru
              tld: ru
    register_date: 2006-04-18 00:00:00
register_date_end: 2016-04-18 00:00:00
        free_date: 2016-05-19 00:00:00
        delegated: Y
               a1: 178.248.233.33
               a2: NULL
               a3: NULL
               a4: NULL
              ns1: ns1.habradns.net.
              ns2: ns2.habradns.net.
              ns3: ns3.habradns.net.
              ns4: NULL
              mx1: alt1.aspmx.l.google.com.
              mx2: alt2.aspmx.l.google.com.
              mx3: aspmx.l.google.com.
              mx4: aspmx2.googlemail.com.
              txt: google-site-verification=kdqnhqj_7jlohipxgkwxizyedshff0askqtc2ovh1em mailru-verification: 78856df53544c6fd v=spf1 include:spf.habramail.net include:aspmx.googlemail.com ~all
             asn1: 197068
             asn2: NULL
             asn3: NULL
             asn4: NULL
            aaaa1: NULL
            aaaa2: NULL
            aaaa3: NULL
            aaaa4: NULL
            cname: NULL
         nserrors: 
*************************** 3. row ***************************
               id: 35689334
        domain_id: 1717034
       date_start: 2016-04-12
         date_end: 2099-01-01
      domain_name: habrahabr.ru
       registrant: registrator-ru
              tld: ru
    register_date: 2006-04-18 00:00:00
register_date_end: 2017-04-18 00:00:00
        free_date: 2017-05-19 00:00:00
        delegated: Y
               a1: 178.248.233.33
               a2: NULL
               a3: NULL
               a4: NULL
              ns1: ns1.habradns.net.
              ns2: ns2.habradns.net.
              ns3: ns3.habradns.net.
              ns4: NULL
              mx1: alt1.aspmx.l.google.com.
              mx2: alt2.aspmx.l.google.com.
              mx3: aspmx.l.google.com.
              mx4: aspmx2.googlemail.com.
              txt: google-site-verification=kdqnhqj_7jlohipxgkwxizyedshff0askqtc2ovh1em mailru-verification: 78856df53544c6fd v=spf1 include:spf.habramail.net include:aspmx.googlemail.com ~all
             asn1: 197068
             asn2: NULL
             asn3: NULL
             asn4: NULL
            aaaa1: NULL
            aaaa2: NULL
            aaaa3: NULL
            aaaa4: NULL
            cname: NULL
         nserrors: 
3 rows in set (0.04 sec)

Полный SQL дамп в виде архива можно сказать по ссылке (размер 2.2G)

Аналогичные проекты

http://1stat.ru/
http://statonline.ru/
http://stat.nic.ru/
https://myip.ms/view/best_hosting/RUS
и другие…

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

Ссылки

Сайт — http://firststat.ru
Репозиторий — https://github.com/AlexeyManikin/domain_statistic
Создатели:
pavelodintsov — создатель идеи и прототипа

redfenix — реализация на Python, сбор и хранение данных, прототип сайта

ilin — доработка сайта

Будем рады пожеланиям по улучшению. Если кому нужен доступ к базе для ваших приложений — пишите, откроем.

Проверка количества доменов на IP адресе

Наш инструмент проверки доменов на IP адресе обнаруживает все сайты, размещенные на одном IP-адресе. Этот инструмент используется для предотвращения хакерских атак. Если количество доменов, размещенных на одном IP-адресе, велико, ваш сайт менее безопасен. А если на IP-адресе размещено меньшее количество доменов, то вы можете считать свой сайт безопасным. Дело в том что злоумышленникам достаточно выбрать один из самых слабых сайтов в этом IP, и начать его досить и все сайты которые находятся на этом IP адресы будут страдать.

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

Общие сервера против выделенных серверов

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

Использовать этот инструмент очень просто. Введите свое доменное имя или IP-адрес в поле ввода и нажмите кнопку «Проверить обратные IP-домены». Через несколько секунд он отобразит весь список доменов, размещенных на вашем сервере.

Наш IP Domain Checker — отличный инструмент, предназначенный для проверки того, сколько веб-сайтов размещено на одном сервере с определенным IP-адресом. Этот инструмент отображает все веб-сайты, размещенные на одном IP адресе.

Как это использовать?

Вот руководство по использованию этого инструмента

  1. Просто введите имя домена или вставьте URL-адрес.
  2. Нажмите кнопку «Проверить» и присаживайтесь.

Наш интеллектуальный инструмент извлечет все веб-сайты, размещенные на одном IP-адресе, и покажет результаты в таблице. Здесь вы можете увидеть список веб-сайтов, которые размещены на вашем сервере с общим IP.

Каждый может использовать этот инструмент бесплатно. Не нужно регистрироваться или платить.

Преимущества инструмента проверки обратного IP-домена

Этот инструмент показывает вам список веб-сайтов, использующих один и тот же IP-адрес. Вы можете проверить все эти веб-сайты, заражены они вредоносным ПО или нет?

Совместное использование одного IP-адреса, который содержит незаконный или аморальный контент или отмечен как спам, может оказать негативное влияние на рейтинг вашего сайта. Чтобы проверить вредоносное ПО, вы можете использовать наш бесплатный и отличный инструмент проверки сайта на вирусы и ПО. Этот инструмент поможет вам идентифицировать вредоносные или подозрительные веб-сайты и уведомить вас.

Недостатки общего IP-адреса

Веб-сайт, который подвергается DDOS-атаке и размещен на одном сервере с тем же IP-адресом, опасен для рейтинга вашего сайта. DDOS-атаки могут вывести из строя весь сервер, и ваш сайт выйдет из строя или станет недоступным для пользователей.

Лучше всего использовать выделенные серверы, если вы серьезно относитесь к своему сайту и его рейтингу.

Реклама

uapeeradv

Статистика хостинг-провайдеров по доменам

С помощью нижеразмещённых сервисов вы можете узнать количество и динамику изменения числа доменных имён, которые обслуживает тот или иной хостер:

  • 1Statстатистика Рунета   http://1stat.ru
  • WebHostingGeeksGlobal web hosting providers   https://webhostinggeeks.com/providers/
  • HosterStatsHistorical DNS Database   http://www.hosterstats.com
  • MyIPWorld Hosting Statistics   https://myip.ms/browse/web_hosting/
  • DNSlyticsOnline investigation tool   https://dnslytics.com
  • Who Hosts This Site?Hosting Provider Detection   https://www.who-hosts-this.com

Статистика регистраторов доменов

С помощью указанных ниже сервисов можно определить количество и динамику изменения числа доменов, которые обслуживает тот или иной регистратор:

  • 1Statстатистика Рунета   http://1stat.ru
  • StatOnlineстатистика доменов .RU / .РФ / .SU   https://statonline.ru
  • RegistrarOwldomain registrar statistics   http://www.registrarowl.com
  • DomainStateDomain Tools, Stats, News, Forum and Directory   https://www.domainstate.com

Вместе с этим читают:     Хостер или реселлер     Виртуальный хостинг     Тест хостингов

Реклама

заказажи текст

Поделиться контентом в соцсетях: vkфейсбуктвиттерtelegramлинкединпинтерест

просмотрели просмотров: 393

Добавить комментарий