Как найти точку по айпи

Зная местоположение человека, можно сделать тысячу полезных и не очень вещей: предложить правильный товар и заранее назвать цену доставки, показать ареал обитания покемонов, вывести локальные новости или посоветовать кафе неподалеку.

Местоположение — это важно.

Какие бывают способы геолокации

Существует 2 базовых способа геолокации, если исключить парсинг геометок фотографий и шпионаж со спутников.

Взять IP-адрес пользователя и по специальному справочнику найти город со страной.

Узнать местонахождение через HTML5 Geolocation API.

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

Город лучше определять по IP: способ всегда работает и не тревожит пользователя. А в геолокации по IP главное — найти справочник, который удобно подключается и без ошибок выдает город. Вторая часть статьи — об этом.

Как мы выбирали справочник IP-адресов

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

Поэтому мы сравнивали справочники по таким критериям:

  1. Стоимость.
  2. Частота обновлений.
  3. Количество диапазонов IP-адресов для России.
  4. Количество адресов «на местности», или полнота. Чтобы измерить полноту, мы прогнали все адреса из каждого справочника через API cтандартизации «Дадаты». Сервис привел адреса к одному формату и разобрал по типам: регион, район, город. Эти стандартизованные адреса мы и посчитали.
  5. Формат: насколько справочник удобно использовать.
  6. Библиотеки и интеграции с популярными фреймворками.
  7. Что можно вытащить из базы помимо города.
  8. Чей Крым (политика политикой, а бизнесу работать надо).
  9. Детализация по населенным пунктам. Чтобы узнать ее, мы прогнали 35000 рандомных уникальных IP-адресов через каждый справочник. Потом сравнили, сколько уникальных городов разрезолвил каждый справочник.

Мы рассматривали такие справочники:

  • IPGeoBase,
  • SypexGEO,
  • MaxMind Lite,
  • ip2ruscity.

IPGeoBase

Стоимость. Бесплатный.

Обновления. Каждый день.

Пулы IP-адресов в России. 43751 пул, это первое место.

Полнота. 728 объектов:

  • 3 региона (Москва, Санкт-Петербург, Севастополь);
  • 2 района;
  • 601 город;
  • 113 прочих населенных пунктов.

Третье место по этому параметру.

Формат базы. Tab-separated текстовые файлы. В одном файле города с ID, в другом — залинкованные на них диапазоны IP.

Кодировка в файлах — боль под названием Windows-1251. Хорошо, что есть iconv — легким движением руки мы получили UTF-8:

iconv -f WINDOWS-1251 -t UTF-8 cities.txt > cities_utf8.txt 

База медленная (еще бы, это текстовый файл) — обход 35000 адресов занял несколько минут.

Библиотеки. Есть готовые под Perl, Ruby и Python, но самая новая — от 2013 года. За 4 года Трамп стал президентом США, вышел PHP 7, появился миллион JS-фреймворков, но ни одну из библиотек под этот справочник так и не обновили.

Чтобы портировать библиотеку под Python 3, понадобился час.

Что можно вытащить из базы.

('RU', 'Санкт-Петербург', 'Санкт-Петербург', ‘59.939037’, ‘30.315784’)

Крым. Наш.

Детализация. На выборке в 35000 адресов нашлось 372 разных населенных пункта.

Это третье место с небольшим отставанием от второго.

Вердикт. IPGeoBase — это набор городов и диапазонов IP-адресов, который завернут в .txt-файлы с tab-separated структурой. Обновляется достаточно часто.

Минусы — библиотеки очаковских времен, да и текстовый файл — не самое удобное решение для доступа к данным.

Повидавший жизнь, но до сих пор летающий Ту-154.

SypexGEO

Стоимость. Бесплатный, распространяется по BSD-лицензии.

Обновления. Пару раз в месяц.

Пулы IP-адресов в России. Всего диапазонов 1696337, но неясно, сколько из них относятся к России: данные закопаны в справочнике. По этому параметру место не присудить.

Полнота. 832 объекта:

  • 2 региона,
  • 1 район,
  • 630 городов,
  • 196 прочих населенных пунктов.

Второе место. Неплохо!

Формат. Странный .dat-файл со структурой на смещениях. Внутренности быстро расковырять не получилось — создатель на форуме говорит, что конвертера для перевода базы в человекопонятный вид нет.

Как работать со справочником, если не через библиотеку — неясно. Для любопытных есть спецификация на сайте справочника.

Скорость хорошая: обход 35000 адресов занял несколько секунд.

Библиотеки. Есть для Python, PHP Yii, PHP Laravel, Java, Ruby. Обновлялись 2-3 года назад. Еще есть интеграция с Symfony и плагин для WordPress.

Что можно вытащить из базы:

{'city': 
    {'id': 498817, 
     'lat': 59.93863, 
     'lon': 30.31413, 
     'name_ru': 'Санкт-Петербург', 
     'name_en': 'Saint Petersburg'}, 
'region': 
    {'id': 536203, 
    'name_ru': 'Санкт-Петербург', 
    'name_en': 'Sankt-Peterburg', 
    'iso': 'RU-SPE'}, 
'country': 
    {'id': 185, 
    'iso': 'RU', 
    'lat': 60.0, 
    'lon': 100.0, 
    'name_ru': 'Россия', 
    'name_en': 'Russia'}, 
'region': 'Санкт-Петербург', 
'tz': ''"}

Крым. Не наш.

Детализация. На выборке в 35000 адресов нашлось 400 разных населенных пунктов.

Это второе место.

Вердикт. Очень подкупает скоростью, смещения — сила. Авторы говорят, что специально оптимизировали базу для высоких нагрузок.

По наполнению и точности похожа на IPGeoBase — здесь чуть больше объектов, 10% адресов резолвятся по-другому.

База полностью открыта.

К сожалению, не резолвит Крым в Россию.

Вертолет Black Hawk — классно летает, но не всем подойдет.

MaxMind Lite

Стоимость. Бесплатный с лицензией Creative Commons. Есть платная версия, которая стоит $1470 в год.

Обновления. Первый вторник каждого месяца (прям как паспортный стол).

Пулы IP-адресов в России. 91432. Если убрать IP-адреса, которые резолвятся в Россию без города, — 42822. Это второе место.

Полнота. 1392 объекта:

  • 61 регион,
  • 819 городов,
  • 497 населенных пунктов.

Первое место с большим отрывом!

Формат базы. Собственный .mmdb. Города и диапазоны IP-адресов доступны также в .csv-файлах, которые лежат в архиве с базой.

У базы есть версии с разной точностью: до страны, до города, а также справочник ASN (уникальных номеров интернет-провайдеров). Есть также база для IPv6-адресов.

Библиотеки. Здесь полный порядок — на «Гитхабе» лежит несколько десятков библиотек для работы с базой.

Что можно вытащить из базы. Выдача суперподробная и мультиязычная. MaxMind отдает интересный параметр accuracy_radius — точность радиуса координат в километрах.

{
  "city": {
    "geoname_id": 498817,
    "names": {
      "de": "Sankt Petersburg",
      "en": "Saint Petersburg",
      "es": "San Petersburgo",
      "fr": "Saint-Pétersbourg",
      "ja": "サンクトペテルブルク",
      "pt-BR": "São Petersburgo",
      "ru": "Санкт-Петербург",
      "zh-CN": "圣彼得堡"
    }
  },
  "continent": {
    "code": "EU",
    "geoname_id": 6255148,
    "names": {
      "de": "Europa",
      "en": "Europe",
      "es": "Europa",
      "fr": "Europe",
      "ja": "ヨーロッパ",
      "pt-BR": "Europa",
      "ru": "Европа",
      "zh-CN": "欧洲"
    }
  },
  "country": {
    "geoname_id": 2017370,
    "iso_code": "RU",
    "names": {
      "de": "Russland",
      "en": "Russia",
      "es": "Rusia",
      "fr": "Russie",
      "ja": "ロシア",
      "pt-BR": "Rússia",
      "ru": "Россия",
      "zh-CN": "俄罗斯"
    }
  },
  "location": {
    "accuracy_radius": 20,
    "latitude": 59.9321,
    "longitude": 30.1968,
    "time_zone": "Europe/Moscow"
  },
  "postal": {
    "code": "191023"
  },
  "registered_country": {
    "geoname_id": 2017370,
    "iso_code": "RU",
    "names": {
      "de": "Russland",
      "en": "Russia",
      "es": "Rusia",
      "fr": "Russie",
      "ja": "ロシア",
      "pt-BR": "Rússia",
      "ru": "Россия",
      "zh-CN": "俄罗斯"
    }
  },
  "subdivisions": [
    {
      "geoname_id": 536203,
      "iso_code": "SPE",
      "names": {
        "en": "St.-Petersburg",
        "es": "San Petersburgo",
        "fr": "Léningrad",
        "ru": "Санкт-Петербург"
      }
    }
  ],
  "traits": {
    "ip_address": "109.205.249.212"
  }
}

Крым. Не наш.

Детализация. На выборке в 35000 адресов справочник нашел 749 адресных объектов.

Это первое место.

Но есть нюансы:

  • в 13% случаев база не сумела определить город. Поняла только, что он находится в РФ, и разрезолвила страну;
  • создатели намекают, что определение адреса по IP — не самая сильная сторона бесплатной версии. Для контроля точности они предлагают мониторить accuracy_radius.

Вердикт. Подробнейшая база с шикарной выдачей.

В 50% случаев результаты расходятся с предыдущими двумя базами — точность и детализация у MaxMind Lite выше.

Но есть принципиальные минусы — частота обновлений и Крым.

Навороченный космический корабль, который обновляется раз в месяц и не считает Крым российским.

ip2ruscity

Стоимость. Платный, стоит 5000 рублей в год.

Обновления. Раз в месяц.

Пулы IP-адресов в России. 34907 пул, третье место.

Полнота. 486 объектов:

  • 4 региона,
  • 454 города,
  • 28 населенных пунктов.

Четвертое место, которое сильно слабее третьего.

Формат базы. Tab-separated текстовые файлы либо SQL-файлы. В них — города, регионы, диапазоны IP-адресов. Есть еще телефонные коды городов, но почему-то они доступны только в MySQL-формате. В общем, как в программе партии «Неуверенная Россия» — будет средне (не прямо круто, так, нормально).

Начало и конец диапазонов IP-адресов для экономии места завернуты в uint-формат. Их придется самостоятельно привести к виду IP-адресов.

Не особо удобно, но жить можно. На Python делается просто:

import socket, struct
socket.inet_ntoa(struct.pack('!I', 84098303))
'5.3.60.255'

Библиотеки. Не нашлось ни одной :(. Пришлось накостылить свой авангардный биндинг для исследования, код публиковать не буду.

У сервиса недавно появилось API. Через него отдают:

  • город,
  • регион,
  • координаты по Google Maps и «Яндекс.Картам».

API относительно бесплатное — не больше 20 запросов в сутки с одного IP-адреса. В платной версии дают 3000 запросов в час.

Что можно вытащить из базы.

{'city': 'Санкт-Петербург',
'region': 'Санкт-Петербург',
'region_id': '78'}

Если использовать MySQL-формат базы, возвращается еще телефонный код города.

Крым. Наш.

Детализация. На выборке в 35000 адресов нашлось 273 населенных пункта. Это последнее место.

Вердикт. Вроде и недорого, но за деньги могло быть и получше.

Винтовой ATR-72 авиакомпании Air Serbia.

Подводя итоги (как первый канал)

Бесплатная MaxMind Lite практически по всем параметрам быстрее, выше и сильнее остальных. Тем не менее, у нее 2 важных минуса — обновляется всего раз в месяц и не считает Крым российским.

Мы в «Дадате» не спали ночами и думали, какой справочник выбрать для своего API геолокации. В итоге взяли за основу IPGeoBase и навернули сверху всяких плюсов.

По сравнению с «голым» IPGeoBase «Дадата» удобнее.

Обновляется автоматически. Сервис обновляет справочник по мере выхода новой версии, вспоминать об этом не придется.

Библиотеки не нужны. Справочник доступен по API, к нему подключится любая HTTP-библиотека. Запрос очень простой: отправляешь только IP-адрес и токен, который дают при регистрации на DaData.ru.

curl -X GET 
  -H "Accept: application/json" 
  -H "Authorization: Token ${yoursecrettoken}" 
https://suggestions.dadata.ru/suggestions/api/4_1/rs/detectAddressByIp?ip=213.180.193.3

Сервис отдает куда больше данных, чем «голый» справочник. Помимо названия найденного объекта это:

  • детализация, до которой удалось разрезолвить IP: страна, регион, район, город, населенный пункт;
  • типы и названия найденного и всех вышестоящих адресных объектов (например, города → района → региона → страны);
  • коды КЛАДР и ФИАС для найденного и всех вышестоящих адресных объектов (региона, района и  т. д.);
  • признак центра района, региона, района и региона;
  • коды ИФНС, ОКАТО и ОКТМО.

Всего в выдаче для IP несколько десятков полей, на DaData.ru есть полная спецификация.

Мы превратили рабочий, но некрашеный Ту-154 в Airbus А-380.

В экономе возим бесплатно — к API можно сделать 10000 запросов в сутки, просто зарегистрировавшись. Если нужно больше, это будет стоить от 4000 рублей в год.

Другие наши сервисы и полезные инструменты

Часто задаваемые вопросы

Что такое Geo IP?

IP-адрес (Internet Protocol Address) — уникальный адрес в сети, который идентифицирует устройство: ваш компьютер, смартфон или планшет. Он нужен для того, чтобы устройства пользователей могли находить друг друга и обмениваться данными в Сети.

Geo IP — это определение географического местоположения по IP-адресу. Сервис Geo IP позволяет проверить IP-адрес и местонахождение любого устройства, а также отображает приблизительную геолокацию: страну, город, регион и координаты на карте.

Можно ли определить точную геолокацию по IP-адресу?

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

Как узнать владельца по IP-адресу?

Узнать владельца сайта можно по IP адресу. Для этого воспользуйтесь сервисом Whois. С его помощью вы узнаете, чей это IP адрес и кому принадлежит веб-страница — физическому лицу или компании. Но учтите, что владелец может скрыть информацию о себе, используя специальные настройки приватности.

Почему мое местоположение определяется неверно?

Точность любого сервиса для проверки по IP зависит от того, насколько точно интернет-провайдеры внесли данные в реестр IP-адресов. Иногда они специально предоставляют вместо нужного адреса IP уже обслуживаемых клиентов из других городов, из-за чего локация определяется ошибочно. Бывают случаи, когда провайдер регистрирует все свои IP-адреса в одном городе, но предоставляют услуги в других городах, например, из-за переезда. В других случаях узнать информацию по IP не получается, потому что реестры не допускают указывать город в графе местоположения — тогда посмотреть геолокацию можно только на уровне страны.

Содержание

  • Определяем адрес компьютера
    • Определение IP-адреса
    • Определение географического положения
    • Заключение
  • Вопросы и ответы

Как узнать местоположение компьютера по ip адресу
IP – это уникальный адрес компьютера в глобальной или локальной сети, выдаваемый каждому ПК провайдером или тем сервером, через который он взаимодействует с другими узлами. На основании этих данных провайдеры получают и передают информацию о тарифах, лицензируют программное обеспечение, выявляют различные неполадки и многое другое. В этой статье поговорим о том, как выяснить физическое местоположение машины, зная ее айпи адрес, и возможно ли такое в принципе.

Определяем адрес компьютера

Как мы уже говорили выше – каждый айпи уникален, но бывают и исключения. Например, провайдер вместо статического (постоянного) адреса выдает динамический. В этом случае IP меняется при каждом подключении пользователя к сети. Другой вариант – использование так называемых Shared-прокси, когда на одном айпи может «висеть» несколько абонентов.

В первом случае можно определить провайдера и его местоположение, а точнее, сервера, к которому в данный момент подключен ПК. Если серверов несколько, то при следующем соединение географический адрес уже может отличаться.

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

Определение IP-адреса

Для того чтобы получить данные о местоположении, необходимо сначала узнать непосредственно сам айпи-адрес пользователя (компьютера). Сделать это можно с помощью специальных сервисов, в большом количестве представленных в интернете. Они позволяют не только определять адреса узлов, серверов и веб-страниц, но и создавать специальные ссылки, при переходе по которым в базу записываются данные о визитере.

Подробнее:
Как узнать IP-адрес чужого компьютера
Как узнать IP-адрес своего компьютера

Определение географического положения

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

Перейти на IPlocation.net

  1. На данной странице вставляем полученный IP в текстовое поле и нажимаем «IP Loockup».
    Ввод адреса компьютера для определения местоположения на сайте IPLocation
  2. Сервис выдаст информацию о местоположении и названии провайдера, полученную из нескольких источников. Нас интересуют поля с географическими координатами. Это широта и долгота.

    Географические координаты сервера на сайте IPLocation

  3. Эти данные необходимо ввести через запятую в поле поиска на картах Гугл, тем самым определив местоположение провайдера или сервера.

    Подробнее: Поиск по координатам на Google Maps

Заключение

Как становится ясно из всего написанного выше, средствами, доступными обычным пользователям, можно получить информацию только о провайдере или расположении конкретного сервера, к которому подключается ПК с определенным IP-адресом. Использование других, более «продвинутых» инструментов может привести к уголовной ответственности.

Еще статьи по данной теме:

Помогла ли Вам статья?

Любой компьютер или смартфон, который подключен к сети Интернет, имеет свой IP адрес.

АйПи может быть как серым (принадлежать сразу группе устройств / всему дому / целому району), так и белым — который принадлежит только вашей квартире или частному дому.

Владелец любого сайта или приложения видит IP адрес посетителя в виде такого набора цифр и точек:

IPv4

157.240.21.35

или же IPv6:

2001:0DB7:AA10:0001:0000:0000:0000:00FB

По факту, ip адрес – это тоже самое, что и домашний адрес, но для компьютера.

Естественно, провайдер в своей базе имеет всю информацию, то есть все ваши данные (на кого оформлен договор) и ваш адрес.

Соответственно, узнать по IP адресу место расположения абонента не сложно. Эту информацию знает провайдер.

К тому же, согласно закону Яровой, провайдер обязан хранить 30 дней весь трафик от абонента, если он связан с коммуникацией: мессенджеры, голосовые сообщения, трафик с социальных сетей.

Для чего провайдер хранит данные?

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

Мессенджеры и соцсети конечно хранят сообщения, но их можно удалить, а провайдер сохранит все.

Таким образом и отслеживают различных экстремистов до того, как они реализуют свои преступные планы.

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

Как вычислить домашний адрес по IP адресу?

Очень часто, в комментариях на различных сайтах в полемике можно встретить фразу:

— Да я тебя по айпи адресу вычислю и приеду!

В 100% случаях такая угроза не имеет никакой почвы под собой. Это невозможно.

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

Но по IP адресу можно узнать страну и город (населенный пункт) через публичные whois сервера.

Как можно вычислить домашний адрес по IP адресу компьютера или смартфона

Также бывает, что зная подсеть можно определить примерный район, которому принадлежит IP, но точный адрес узнать просто технически невозможно.

Для того, чтобы скрыть IP адрес можно использовать различные VPN сервисы, однако их использование не всегда безопасно и бывали случаи, когда с помощью VPN хакеры взламывали компьютеры и смартфоны.

А что с мобильными сетями?

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

Если материал показался вам полезным, поставьте лайк (палец вверх) и подпишитесь на канал: https://zen.yandex.ru/poznyaevru . Так вы не пропустите новые интересные статьи.

Геолокация на основе IP – это сопоставление IP-адреса или MAC-адреса с реальным географическим местоположением компьютеров или мобильных устройств, подключенных к Интернету. Геолокация включает в себя отображение информации по таким полям, как: страна, регион (город), широта/долгота, интернет-провайдер и доменное имя, а также другие вкусяншки.

Где я могу получить базу геолокации на основе IP?

Существует ряд коммерчески доступных баз данных геолокации, их цена и точность могут отличаться. Ip2location, MaxMind, Tamo Soft, DB-IP, Ipinfo и IPligence предлагают платные базы данных, которые можно легко интегрировать в веб-приложение. Большинство поставщиков баз данных геолокации предлагают API и примеры кодов, которые можно использовать для извлечения данных БД. Мы предоставления бесплатные геолокационные данные на нашем сайте.

Существуют также свободно доступные базы геолокации. Поставщики, предлагающие коммерческую базу данных геолокации, также предлагают облегченную версию или версию сообщества, в которой представлены сопоставления IP-адресов для стран. Ip2Country.net и Webhosting.info (Directi) предлагают бесплатную базу данных IP-адресов в страну, которая также может быть интегрирована в ваше веб-приложение. Есть компании, которые также предлагают бесплатные веб-сервисы, которые можно использовать для отображения геолокации IP-адреса на вашем сайте.

Узнать айпи адрес

Точность базы геолокации зависит от используемой базы данных. Некоторые поставщики утверждают, что для баз данных IP-адресов в стране они обеспечивают точность от 98% до 99%, хотя обычная точность базы данных Ip2Country более 95%. Для IP  в регионе (или городе), точность составляет от 50% до 75%, если соседние города считаются правильными. Принимая во внимание, что нет официального источника информации о IP-адресе в регионе, точность 50+% довольно хорошая.

Найти по айпи

База данных ARIN Whois предоставляет механизм поиска контактной и регистрационной информации для IP-ресурсов, зарегистрированных в ARIN. Whois-информация по IP доступна бесплатно, и определить страну из этой базы данных довольно просто. Когда организации требуется блок IP-адресов, отправляется запрос и назначенные IP-адреса отправляются запрошенному провайдеру.

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