Как стать автором
Обновить

Картирование интернета

Время на прочтение5 мин
Количество просмотров5.4K
Сидя на диване и в очередной раз придумывая безумную идею, из разряда того что глобально, а я на уровне хобби этим еще не позанимался, мне эта идея все таки пришла :).

Прикинув, что у того у кого информация, у того и возможности для работы с аудиторией, я задался вопросом почему так мало поисковиков в интернете. Ну гугл, яндекс, рамблер, ну и что то там еще, что пересчитать по пальцам легко. А ведь они аккумулируют практически подавляющие большинство пользователей интернета. Через них проходят большое число пользователей и от них же в определенной мере зависит куда направить пользователя. Да и фирмы в определенной мере раскручиваются не хитрыми способами влияния на ботов того же гугла.

А есть ли результат? У кого нибудь есть представление о том, сколько существует русскоязычных ресурсов? А есть ли возможность посмотреть их ранжированные списки как по частоте использования и тематическому разделению. Пытаются говорить о семантическом интернете, а вот такого даже элементарного порядка в структурировании похоже нет. Сказав себе «кто же если не мы», я пошел реализовывать эту идею и подходы к её решению. Но главное понял основную сложность, которая как и много где просто упирается в ресурсы, в данном случае процессорного времени. Тем кому интересны изыскания новичка в обозначенной области, но со свежим взглядом, прошу под кат.



IP как основа идентификации



Ну, что же тут сложного сказал я себе, надо всего лишь получить список всех сайтов, а потом их отранжировать, да хотя бы по тому же PageRang`у от гугла. Ну пошел и сочинил не хитрую программку на C# пингования 80 порта по IP, и в случае успеха получая имя домейна и его страну (используя веб сервис GeoIPService). Запустил своего нехитрого бота дозвона и подойдя через часик посмотреть сколько же я сайтов собрал, обнаружил почти 1 уникальный… Тут все и завертелось. Решил посчитать, как известно вариаций IP может быть 256*256*256*256 = около 4 млрд. Ну не так и много подумал я, но потом посмотрел сколько занимает один пинг, получилось что-то около 0,1 секунды. Этим же таймаутом я и ограничил получение ответа, т.к. по умолчанию он существенно больше. Теперь можно было закончить подсчет 4971 суток. Ну 14 лет на это у меня нет, сказал я себе. На этом я мог подивится чуду техники гугла, понять что они делают большую работу и не какому то одиночке с ними конкурировать. Но упорство взяло верх :)

Ограничение по странам



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

Почитав, что делают для этого люди, нашел, что есть целая отраль на эту нехитрую задачу — с красивым названием геотаргетинг, и подивился статьям на хабре: Определение города по IP-адресу, База GeoIP – страны и города и целая куча подобных. В общем даже платные базы и т.д., целая отрасль бизнеса :)

Но главное, это была какая то вторичная информация и пользоваться ей не было ни какой необходимости и желания. Поэтому я хотел понять откуда же ветер дует — где первичная информация? Откуда берется информация в такого рода базах геолокаций?

Регионы сети


Пришлось озаботится тем, чтобы понять кто управляет интернетом, читая популярную информацию в Википедии можно понять, что с момента создания сети и до своей смерти в 1998 году курировал распределение адресов Джон Постель в соответствии с договором Министерства обороны США. Теперь же управляет выдачей IP адресов некая некоммерческая организация Internet Assigned Numbers Authority (IANA), которую после смерти Постеля присоединили к ICANN, основанным правительством США, которая в свою очередь получила контракт от министерства торговли США. В общем схема запутанная, и до сих пор идут разборки в ООН, чтобы США отдала бы контроль над интернетом в веденье ООН, чего та естественно отказалась делать. Но все это нас исключительно интересует лишь в плане того есть ли какой то порядок в распределении IP адресов и какие подсети можно не сканировать поисковиками.

И вот он самый важный документ от организации IANA с надеждой на порядок: IANA IPv4 Address Space Registry.

В нем расписано, кто отвечает (читай «кому принадлежат») регионы сети. Отсюда удобнее ввести свою более удобную терминологию: регионами сети будем называть IP адреса определяемые первым числом IP адреса, а сектором первыми двумя числами.

Из документа выше следует, что регионы: 0, 10, 127 зарезервированы организацией IANA для себя, и начиная с 224 и до конца 255 зарезервировано для т.н. Мультикаста и будущего использования. Далее солидная часть принадлежит крупным телекоммуникационным и информационным компаниям США, военным США и Великобритании — я насчитал 35 регионов.

Итого 70 регионов из 256 недоступны простым смертным, и их нет необходимости сканировать. Остальные распределены на 5 региональных зон Америка Северная, Америка Южная, Африка, Индонезия с Китаем, и Евпропа с Азией. Их распределением занимаются уже другие региональные конторы, и нас интересует Европейская RIPE NCC. Собственно сервисы whois предоставляются ими и распределены по этим региональным организациям.

В управление Европейской организации отдано на откуп 35 регионов IP адресов для распределения условно назовем их провайдерами (хотя лицензируется по правилам стран) и +4 региона как я понимаю со специальным администрированием.

Вот только на этом уровне можно с уверенностью говорить, какому территориальному региону принадлежат IP адреса. Дальше зависит от того какую публичну информацию предоставляют региональные организации. Но уже лучше вместо 14 лет на сканирование 256 регионов интернета нам понадобится сканировать 39 регионов Европы/Азии всего лишь чуть больше 2 лет работы одного процессора.

Можно перейти и ниже. К сожалению дальше порядка нет (да и на уровне регионов бывают исключения). Сектора могут принадлежать разным странам. Но можно скачать актуальную базу данных whois от Ripe и в ней найти информацию о странах. Города там иногда есть, но для машинной обработке почти не годятся, т.к. как я понимаю это то что вписывают нерадивые администраторы сетей при получении в свое пользование подсети IP адресов, и там частенько перепутаны поля (напр., вместо города адрес) или вообще не указано. Но код страны есть стабильно.

Обработав их текстовый файл из 3 гигов, и выбрав от туда принадлежащие Латвии и России я выделил 2004 сектора для России и 307 для Латвии (избирательность к Латвии определяется родиной :)). А математика складывания тут другая 2004+307 = 2063 уникальных сектора. Т.е. как и говорилось ранее сектора, естественно пересекаются, и там могут быть другие европейские страны, но зато мы получили ориентировочную оценку.

А именно от 109 минут на пинг одного сектора. А для 2063 секторов порядка 156 дней (минимальная оценка, т.к. на поиск домена в случае успеха открытого 80 порта надо еще потратить немного времени).

Это уже подъемно, даже мне, если врубить все моих 8 ядер — за месяц карту интернета России я получу.

А собственно для чего нужно картирование интернета такого рода ?


Ну в фантазии я вас ограничивать не хочу. И вначале были намеченны идеи для чего это может быть надо. Хочу подчеркнуть, что это время требуется только на первый скан для определения всех компьютеров с открытым 80 портом (т.е. потенциальные кандидаты на предоставление веб-услуг), среди которых совсем мало реальных доменов (DNS имен).

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

И возможно так зародится новый гугл :)

P.S. В случае положительного отклика, создам соответствующий ресурс для этого.
Теги:
Хабы:
-13
Комментарии49

Публикации