как узнать пул ip адресов провайдера
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как узнать все IP провайдера, города, региона (области, республики) или страны
Все перечисленные здесь возможности теперь реализованы онлайн на едином сервисе. Смотрите: http://suip.biz/ru/
Список всех IP интернет-провайдера
Для получения списка диапазонов IP адреса провайдера есть несколько сервисов.
Например, Hurricane Electric BGP Toolkit — позволяет делать поиск по имени. Но у этого сервиса есть существенные недостатки, из-за которых мне не нравится им пользоваться:
Следующий сервис, который мне подсказал Гугл, это онлайн демонстрация программы «Тест IP v 1.7».
Мне понравилась работа этого сервиса — диапазоны выдаются в удобочитаемом формате. Но меня смущает надпись «Обновление от 15 дек 2014». Я не знаю, это относится к базе данных или к программе, но по сравнению с результатами из других источников, результаты этого сервиса несколько неполные.
В конечном счёте мне больше всего понравился сервис — 2ip.ua. Он не может искать по именам компании — нужно ввести один из IP, который принадлежит провайдеру, либо адрес веб-сайта провайдера, либо его RIPE NCC.
Главный его минус — это тот вид, в котором он выдаёт диапазоны адресов. Посмотрите сами:
и там этого ещё шесть экранов вниз…
Зато он оказался крайне дружелюбным для парсинга в командной строке.
Если вы хотите узнать все IP другого провайдера (а не вашего), то можно сделать так:
Вместо www.parc.com вам нужно указать любой IP, который принадлежит интересующему вас провайдеру, либо адрес его веб-сайта.
Список IP города, области
Для этого можно воспользоваться IpGeoBase.ru.
Причём результаты также легко поддаются парсингу. Если вы хотите сохранить список из IP какого-либо города, то сначала зайдите на сайт IpGeoBase.ru, задайте нужные вам опции и скопируйте адрес получившейся страницы.
Теперь в командную строку скопируйте команду
Где вместо ‘URL‘ введите адрес страницы на ipgeobase.ru, которую нужно пропарсить.
Результаты работы программы будут сохранены в файл diap_ip.txt.
Ещё один вариант — оффлайновый. Мне он даже ближе, т.к. актуальность базы данных IpGeoBase.ru вызывает у меня сомнения.
Скачиваем и распаковываем базу данных (она довольно большая — в распакованном виде более 400 мегабайт):
Чтобы прикинуть, правильно ли вы ищите, наберите примерно такую команду (Murom замените на интересующий вас город):
ВНИМАНИЕ: некоторые населённые пункты написаны по-русски! Пробуйте также русские названия.
Для очистки списка сделайте так:
Сохраняем в файл полученные результаты:
Если вы хотите получить все IP адреса какой-либо области, то смотрите мой пример. Меня интересует Владимирская область. Начните с укороченного названия на русском:
Результат пустой — хорошо, запомнили это и продолжаем. Пробуем сокращённое английское название:
Вариантов написания много: «Vladimir Oblast», Vladimirskaya Oblast\’, Province of Vladimir, Vladimirskaya oblast, Влади́мирская О́бласть (хм, запись нашлась по городу Vladimir, сколько ещё русских названий мы пропустили?). Если там что-то лишнее, то делаем примерно так:
У меня лишних результатов нет, поэтому я просто очищаю полученный по укороченного английскому названию список:
Список всех IP страны
Получить полный список IP любой страны очень просто.
Скачиваем и распаковываем базу данных (если не сделали этого раньше):
В следующей команде там где COUNTRY=RU, замените RU на двухсимвольное обозначение любой интересующей вас страны. Двухбуквенные коды любой страны вы можете узнать здесь.
Эта команда составит полный список IP и сохранит его в файл для РФ:
А эта команда сделает то же самое для Таиланда:
Как вычислить (город пользователя) по IP
Зная местоположение человека, можно сделать тысячу полезных и не очень вещей: предложить правильный товар и заранее назвать цену доставки, показать ареал обитания покемонов, вывести локальные новости или посоветовать кафе неподалеку.
Местоположение — это важно.
Какие бывают способы геолокации
Существует 2 базовых способа геолокации, если исключить парсинг геометок фотографий и шпионаж со спутников.
Взять IP-адрес пользователя и по специальному справочнику найти город со страной.
Узнать местонахождение через HTML5 Geolocation API.
В этой статье мы рассказываем, как найти город пользователя, потому что такой точности обычно хватает. Го́рода достаточно интернет-магазинам, курьерским службам, новостным агрегаторам, сайтам с прогнозами погоды.
Город лучше определять по IP: способ всегда работает и не тревожит пользователя. А в геолокации по IP главное — найти справочник, который удобно подключается и без ошибок выдает город. Вторая часть статьи — об этом.
Как мы выбирали справочник IP-адресов
В сравнении справочников есть большая проблема: невозможно проверить, действительно ли прямо сейчас IP-адрес принадлежит городу, найденному справочником. Вчера IP относился к Питеру, а сегодня это Нижний Новгород.
Поэтому мы сравнивали справочники по таким критериям:
IPGeoBase
Обновления. Каждый день.
Пулы IP-адресов в России. 43751 пул, это первое место.
Полнота. 728 объектов:
Формат базы. Tab-separated текстовые файлы. В одном файле города с ID, в другом — залинкованные на них диапазоны IP.
Кодировка в файлах — боль под названием Windows-1251. Хорошо, что есть iconv — легким движением руки мы получили UTF-8:
База медленная (еще бы, это текстовый файл) — обход 35000 адресов занял несколько минут.
Библиотеки. Есть готовые под Perl, Ruby и Python, но самая новая — от 2013 года. За 4 года Трамп стал президентом США, вышел PHP 7, появился миллион JS-фреймворков, но ни одну из библиотек под этот справочник так и не обновили.
Чтобы портировать библиотеку под Python 3, понадобился час.
Что можно вытащить из базы.
Детализация. На выборке в 35000 адресов нашлось 372 разных населенных пункта.
Это третье место с небольшим отставанием от второго.
Минусы — библиотеки очаковских времен, да и текстовый файл — не самое удобное решение для доступа к данным.
Повидавший жизнь, но до сих пор летающий Ту-154.
SypexGEO
Стоимость. Бесплатный, распространяется по BSD-лицензии.
Обновления. Пару раз в месяц.
Пулы IP-адресов в России. Всего диапазонов 1696337, но неясно, сколько из них относятся к России: данные закопаны в справочнике. По этому параметру место не присудить.
Полнота. 832 объекта:
Как работать со справочником, если не через библиотеку — неясно. Для любопытных есть спецификация на сайте справочника.
Скорость хорошая: обход 35000 адресов занял несколько секунд.
Библиотеки. Есть для Python, PHP Yii, PHP Laravel, Java, Ruby. Обновлялись 2-3 года назад. Еще есть интеграция с Symfony и плагин для WordPress.
Что можно вытащить из базы:
Детализация. На выборке в 35000 адресов нашлось 400 разных населенных пунктов.
Вердикт. Очень подкупает скоростью, смещения — сила. Авторы говорят, что специально оптимизировали базу для высоких нагрузок.
По наполнению и точности похожа на IPGeoBase — здесь чуть больше объектов, 10% адресов резолвятся по-другому.
База полностью открыта.
К сожалению, не резолвит Крым в Россию.
Вертолет Black Hawk — классно летает, но не всем подойдет.
MaxMind Lite
Обновления. Первый вторник каждого месяца (прям как паспортный стол).
Пулы IP-адресов в России. 91432. Если убрать IP-адреса, которые резолвятся в Россию без города, — 42822. Это второе место.
Полнота. 1392 объекта:
У базы есть версии с разной точностью: до страны, до города, а также справочник ASN (уникальных номеров интернет-провайдеров). Есть также база для IPv6-адресов.
Библиотеки. Здесь полный порядок — на «Гитхабе» лежит несколько десятков библиотек для работы с базой.
Что можно вытащить из базы. Выдача суперподробная и мультиязычная. MaxMind отдает интересный параметр accuracy_radius — точность радиуса координат в километрах.
Детализация. На выборке в 35000 адресов справочник нашел 749 адресных объектов.
В 50% случаев результаты расходятся с предыдущими двумя базами — точность и детализация у MaxMind Lite выше.
Но есть принципиальные минусы — частота обновлений и Крым.
Навороченный космический корабль, который обновляется раз в месяц и не считает Крым российским.
ip2ruscity
Стоимость. Платный, стоит 5000 рублей в год.
Обновления. Раз в месяц.
Пулы IP-адресов в России. 34907 пул, третье место.
Полнота. 486 объектов:
Формат базы. Tab-separated текстовые файлы либо SQL-файлы. В них — города, регионы, диапазоны IP-адресов. Есть еще телефонные коды городов, но почему-то они доступны только в MySQL-формате. В общем, как в программе партии «Неуверенная Россия» — будет средне (не прямо круто, так, нормально).
Начало и конец диапазонов IP-адресов для экономии места завернуты в uint-формат. Их придется самостоятельно привести к виду IP-адресов.
Не особо удобно, но жить можно. На Python делается просто:
Библиотеки. Не нашлось ни одной :(. Пришлось накостылить свой авангардный биндинг для исследования, код публиковать не буду.
У сервиса недавно появилось API. Через него отдают:
Что можно вытащить из базы.
Если использовать MySQL-формат базы, возвращается еще телефонный код города.
Детализация. На выборке в 35000 адресов нашлось 273 населенных пункта. Это последнее место.
Вердикт. Вроде и недорого, но за деньги могло быть и получше.
Винтовой ATR-72 авиакомпании Air Serbia.
Подводя итоги (как первый канал)
Бесплатная MaxMind Lite практически по всем параметрам быстрее, выше и сильнее остальных. Тем не менее, у нее 2 важных минуса — обновляется всего раз в месяц и не считает Крым российским.
Мы в «Дадате» не спали ночами и думали, какой справочник выбрать для своего API геолокации. В итоге взяли за основу IPGeoBase и навернули сверху всяких плюсов.
По сравнению с «голым» IPGeoBase «Дадата» удобнее.
Обновляется автоматически. Сервис обновляет справочник по мере выхода новой версии, вспоминать об этом не придется.
Библиотеки не нужны. Справочник доступен по API, к нему подключится любая HTTP-библиотека. Запрос очень простой: отправляешь только IP-адрес и токен, который дают при регистрации на DaData.ru.
Сервис отдает куда больше данных, чем «голый» справочник. Помимо названия найденного объекта это:
Мы превратили рабочий, но некрашеный Ту-154 в Airbus А-380.
В экономе возим бесплатно — к API можно сделать 10000 запросов в сутки, просто зарегистрировавшись. Если нужно больше, это будет стоить от 4000 рублей в год.
IPv4 калькулятор подсетей
Параметр | Десятичная запись | Шестнадцатеричная запись | Двоичная запись |
IP адрес | 188.68.217.15 | BC.44.D9.0F | 10111100.01000100.11011001.00001111 |
---|---|---|---|
Префикс маски подсети | /24 | ||
Маска подсети | 255.255.255.0 | FF.FF.FF.00 | 11111111.11111111.11111111.00000000 |
Обратная маска подсети (wildcard mask) | 0.0.0.255 | 00.00.00.FF | 00000000.00000000.00000000.11111111 |
IP адрес сети | 188.68.217.0 | BC.44.D9.00 | 10111100.01000100.11011001.00000000 |
Широковещательный адрес | 188.68.217.255 | BC.44.D9.FF | 10111100.01000100.11011001.11111111 |
IP адрес первого хоста | 188.68.217.1 | BC.44.D9.01 | 10111100.01000100.11011001.00000001 |
IP адрес последнего хоста | 188.68.217.254 | BC.44.D9.FE | 10111100.01000100.11011001.11111110 |
Количество доступных адресов | 256 | ||
Количество рабочих адресов для хостов | 254 |
IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Первая широко используемая версия. Протокол описан в RFC 791 (сентябрь 1981 года), заменившем RFC 760 (январь 1980 года).
IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающие адресное пространство 4 294 967 296 (2 32 ) возможными уникальными адресами.
Традиционной формой записи IPv4 адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длина маски подсети.
IP-адрес состоит из двух частей: номера сети и номера узла. В случае изолированной сети её адрес может быть выбран администратором из специально зарезервированных для таких сетей блоков адресов (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16). Если же сеть должна работать как составная часть Интернета, то адрес сети выдаётся провайдером либо региональным интернет-регистратором (Regional Internet Registry, RIR). Согласно данным на сайте IANA, существует пять RIR: ARIN, обслуживающий Северную Америку, а также Багамы, Пуэрто-Рико и Ямайку; APNIC, обслуживающий страны Южной, Восточной и Юго-Восточной Азии, а также Австралии и Океании; AfriNIC, обслуживающий страны Африки; LACNIC, обслуживающий страны Южной Америки и бассейна Карибского моря; и RIPE NCC, обслуживающий Европу, Центральную Азию, Ближний Восток. Региональные регистраторы получают номера автономных систем и большие блоки адресов у IANA, а затем выдают номера автономных систем и блоки адресов меньшего размера локальным интернет-регистраторам (Local Internet Registries, LIR), обычно являющимся крупными провайдерами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Маршрутизатор по определению входит сразу в несколько сетей. Поэтому каждый порт маршрутизатора имеет собственный IP-адрес. Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
Есть два способа определения того, сколько бит отводится на маску подсети, а сколько — на IP-адрес. Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.
Запись IP-адресов с указанием через слэш маски подсети переменной длины также называют CIDR-адресом в противоположность обычной записи без указания маски, в операционных системах типа UNIX также именуемой INET-адресом.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов: если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast). Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, в сети 192.168.5.0 с маской 255.255.255.0 пакет с адресом 192.168.5.255 доставляется всем узлам этой сети. Такая рассылка называется широковещательным сообщением (direct broadcast).
IP-адрес называют статическим (постоянным, неизменяемым), если он назначается пользователем в настройках устройства, либо назначается автоматически при подключении устройства к сети и не может быть присвоен другому устройству.
IP-адрес называют динамическим (непостоянным, изменяемым), если он назначается автоматически при подключении устройства к сети и используется в течение ограниченного промежутка времени, указанного в сервисе назначавшего IP-адрес (DHCP).