Узнать местоположение IP-адреса
Информация о местоположении IP-адреса
Расположение IP-адреса на карте
Геолокация по IP-адресу
Поскольку все IP-адреса в Интернете уникальны, а каждый владелец и провайдер официально зарегистрирован, должно быть возможно определять географическое расположение любого ПК или сервера просто по его IP-адресу, по крайней мере в теории. Одна из проблем заключается в том, что диапазоны IP-адресов администрируются несколькими сотнями региональных учреждений, и было бы не очень практично запрашивать в каждом из них напрямую. К счастью, некоторые компании специализируются на сборе информации о диапазоне IP-адресов со всего мира. Они продают эту информацию в виде консолидированных баз данных, которые легко интегрируются в любой веб-сервер с целью быстрого поиска информации о стране, регионе, городе или интернет-провайдере. Точность этих баз данных колеблется от 80 до 99,8%, согласно их собственным утверждениям.
Многие веб-серверы уже используют технологию геолокации для автоматического отображения контента на местном языке посетителя, предоставляя результаты регионального поиска или измененные страницы в определенных странах, в соответствии с местным законодательством, ограничивающим доставку музыки только для граждан США, для предотвращения подлога, в маркетинговых целях, во время веб-анализа, эта технология также широко используется в брандмауэрах, серверах доменных имен, серверах рекламы, маршрутизации, почтовых системах, веб-сайтах и других автоматизированных системах, где может быть полезна геолокация.
IP2GeoLocation.com веб-сервис IP-геолокации обеспечивает поиск IP-адреса в базе геолокации и возвращает информацию о местоположении, такую как: континент, код страны, название страны, регион или штат, город, широта и долгота, почтовый индекс, часовой пояс, интернет-провайдер или название компании и так далее. Для поиска отправьте запрос в строку сервиса, и вы получите географическое расположение IP-адреса в течении нескольких секунд. Индекс результатов поиска включает в себя более 4 миллиардов уникальных IP-адресов.
Этот бесплатный и простой онлайн-инструмент позволит вам узнать владельца, интернет-провайдера и географическое местоположение любого веб-сайта, домена или IP-адреса. Проверка IP-адресов полезна, когда вам нужно определить, откуда приходят посетители вашего сайта. У вас может быть веб-сайт электронной коммерции, и вы хотели бы знать, где находятся ваши потенциальные клиенты, предварительно заполнить код страны в формах, отобразить другой язык и уменьшить количество случаев мошенничества с кредитными картами, внедрив систему предотвращения мошенничества на основе географического местоположения. Или, возможно, вы захотите бороться со спаммерами и хакерами, узнать где они находятся. Просто введите IP-адрес или имя хоста, и вам будет показано местоположение на карте, координаты, страна, регион, город и интернет-провайдер. Вам также может быть интересно узнать, что ваш IP-адрес раскрывает о вас.
Определение страны по ip-адресу
10 ответов
Я думаю, что вы ищете базу данных геолокации IP или поставщика услуг. Есть много там, и некоторые из них бесплатно (получить то, что вы платите за).
хотя я не использовал эту услугу раньше, она утверждает, что находится в режиме реального времени. https://kickfire.com/kf-api
но просто сделайте поиск google на IP geo, и вы получите больше результатов, чем вам нужно.
Если вы хотите узнать местоположение, которое в настоящее время отображает IP-адрес, вы можете загрузить базу данных геолокации, такую как от MaxMind GeoLite от, или использовать API, как http://ipinfo.io (мой собственный сервис), который также даст вам дополнительные сведения:
Это не так просто. IP-адреса назначаются не странам как таковым, а компаниям и организациям.
например, с узлом.js
можно использовать ipdata.со выполнить поиск
этот ответ использует «тестовый» ключ API, который очень ограничен и предназначен только для тестирования нескольких вызовов. Регистрация для вашего собственного бесплатного ключа API и получите до 1500 запросов ежедневно для разработки.
Ipdata имеет 10 конечных точек по всему миру, каждая из которых способна обрабатывать >10 000 запросов в секунду!
может быть эти две ссылки может помочь вам связать IP-адреса со странами
Я согласен с приведенными выше ответами, лучший способ получить страну с ip-адреса-Maxmind.
Если вы хотите написать код на java, вы можете использовать, например, geoip-api-1.2.10.файлы jar и geoIP dat (GeoIPCity.dat), который можно найти через google.
следующий код может быть полезным для вас, чтобы получить почти всю информацию, связанную с местоположением, я также использую тот же код.
сеть доставки контента CloudFront Amazon теперь можно настроить для передачи этой информации в качестве заголовка. Учитывая размер Amazon (они большие и стабильные, никуда не денутся), и это конфигурация по коду (нет стороннего API для изучения или кода для обслуживания), все вокруг считают это лучшим вариантом.
Если вы не используете AWS CloudFront, я бы посмотрел, есть ли у вашего CDN аналогичный параметр заголовка, который можно включить. Обычно крупные поставщики быстро нажмите для четности функций. И если вы не используете CDN, вы можете поместить CloudFront перед своей инфраструктурой и просто установить origin для разрешения того, что вы используете в настоящее время.
кроме того, имеет смысл разрешить это на уровне CDN. Ваш CDN уже должен выяснить географическое местоположение для маршрутизации пользователя к ближайшему узлу контента, а также передать эту информацию и не выяснить это дважды через сторонний API (это становится chokepoint для ваше приложение, ожидая гео поиска местоположения, чтобы решить). Нет необходимости делать эту работу дважды (и во второй раз, возможно, менее устойчивым [например, 3rd party Geo lookup]).
Гео-Таргетинг – CloudFront определит страну происхождения пользователя и передайте код округа вам в CloudFront-Viewer-Country заголовок. Эту информацию можно использовать для настройки ответы без использования URL-адресов, специфичных для каждой страны.
IP-адреса довольно часто используются для геотаргетинга, т. е. настройки содержимого веб-сайта по местоположению / стране посетителя, но они не постоянно связаны со страной и часто переуступаются.
чтобы выполнить то, что вы хотите, вам нужно держать в курсе поиска для сопоставления IP-адреса в страну либо с базой данных или геолокации API. Вот пример :
или вы можете использовать полный API, чтобы получить полный расположение для IP-адреса например
вы можете видеть, что каждая страна имеет несколько диапазонов и часто меняется.
Код страны по ip адресу
Составление диапазонов IP
Узнать информацию о себе
Извлечение информации из кэша и веб архивов
Обход запрета показа исходного HTML кода, обход социальных блокировщиков
Продвинутое использование поисковых систем
Работа с кодировками
Инструменты противодействия CloudFlare
Изображения и метаданные
Информация о номерах телефонов
Сканеры уязвимостей веб-сайтов
Сканеры уязвимостей, открытых портов и запущенных служб веб-серверов
Субдомены и скрытые файлы
Получение информации по MAC-адресам
Анализ работы веб-сервера
Анализ электронных писем
Лучший хостинг Рунета:
Все IP города, области, республики
Введите географическое название латинскими буквами для получения всех привязанных к нему IP. Регистр не важен. В случае необходимости, воспользуйтесь сервисом транслитерации (пишет русские слова английскими буквами). Примеры:
Если по вашему названию ничего не нашлось, то попробуйте поиск по неполным словам в неочищенной базе данных – возможно, вам это поможет вам выяснить правильное написание искомого населённого пункта. Пробелы не фильтруются, поэтому если географическое название в два и более слов, то можно ввести их оба.
Вас также могут заинтересовать сервисы:
If you want to contribute, you can make donation for adding new services:
Определение страны по IP: тестируем скорость алгоритмов
Для определения страны по IP необходимы специальные базы данных, состоящие из диапазонов IP адресов и соответствующих им стран. Обычно такие базы данных распространяются в виде CSV или SQL файлов для использования в СУБД, либо бинарных файлов специального формата.
Для проведения тестирования была выбрана февральская база GeoLite Country, бесплатная версия GeoIP Country от MaxMind.
В тестировании приняли участие несколько популярных решений и мой «велосипед» на эту тему.
Участники тестирования
MySQL
В качестве подопытной СУБД будет использоваться MySQL. В которой создана таблица, состоящая из IP-диапазонов и номеров стран, IP преобразованы в integer и по ним построены индексы. Структура таблицы выглядит так:
GeoIP API
SxGeo v2
Немного слов о моем «велосипеде». Лет 6 назад, после изучения доступных на тот момент решений определения страны по IP, был впечатлен скоростью бинарного формата GeoIP. Но у него, как мне показалось, был недостаток в большом количестве перемещений по файлу для нахождения нужного IP. Появилась интересная идея по поводу своей реализации. Которая довольно быстро была реализована и, на удивление, оказалась значительно быстрее, чем я ожидал. Долгое время Sypex Geo использовался в своих проектах.
На днях решил реализовать еще некоторые идеи по оптимизации. В итоге появилась версия Sypex Geo 2 (сокращено SxGeo). Файл с базой данных стал на 25% меньше, чем у первой версии, и при этом скорость увеличилась в 1,7-2 раза.
Geobaza
Также вне конкурса был протестирован алгоритм Geobaza. Вне конкурса, потому что использовался родной бинарный файл, со значительно большим количеством диапазонов. Geobaza показала около 2000-3000 IP/сек, был очень большой разброс по результатам. Если создатели Geobaza прочитают эту статью и пришлют файл, сгенерированный по февральскому GeoLite Country, то с удовольствием добавлю в тестирование.
Тестирование
Для тестирования был написан PHP-скрипт, в котором при каждом запуске генерился массив из 10000 случайных IP-адресов. После чего все алгоритмы проверялись на этом массиве. Такой метод тестирования был выбран для того, чтобы алгоритмы были в равных условиях.
Тестилось на серваке под управлением FreeBSD 8 и PHP 5.2.17. Также тестилось на локалке Win 7 x64, PHP 5.3.9, пропорции примерно те же, поэтому в таблицах представлены только результаты FreeBSD.
Тест прогонялся 10 раз, усредненные данные приведены на графике.
Самыми медленными оказались простые запросы MySQL. Причина столь медленной работы становится очевидной, если посмотреть EXPLAIN этих запросов.
Первый результат простого индекса PRIMARY KEY (`ipn1`), второй для составного индекса PRIMARY KEY (`ipn1`, `ipn2`), третий для двух индексов PRIMARY KEY (`ipn1`), INDEX `ipn2` (`ipn2`). Как видим для составного индекса строк для последующего перебора больше, чем в других случаях. Я же тестил без LIMIT 1, и в этом случае EXPLAIN пишет, что индекс не используется, хотя реально работает такой вариант быстрее, чем с LIMIT.
Вариант с вложенным SELECT — значительно быстрее. Запрос показывает, что индексы в MySQL, когда они нормально используются, работают очень быстро, приближаясь к специализированным бинарным форматам.
GeoIP показал, что его всё же использовать предпочтительнее, чем MySQL. Меня смутило, что использование кэширования в памяти дает столь малый прирост, меньше 10%. Поковырявшись в geoip.inc, нашел виновника. Им оказался следующий код:
Если закомментировать строки с mb_internal_encoding то в итоге скорость поднимется до 6600 IP/сек — уже более ощутимый прирост от использования кэширования в памяти. Кодировки в данном случае нас не волнуют, возможно были какие-то глюки с GeoIP City.
Что касается SxGeo, то тут думаю, комментарии излишни. Он и в обычном режиме работает очень быстро, а в режиме Batch + Memory позволяет получить прибавку еще 40%.
Желающие могут скачать и потестить SxGeo 2. Пожелания и багрепорты приветствуются.
UPD. Потестил еще запросы в разных комбинациях индексов, оказалось, что если в первые 2 запроса добавить LIMIT 1, то MySQL начинает очень тупить, где-то в 3-5 раз медленнее.
Как вычислить (город пользователя) по 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 рублей в год.





