Kwert-soft.ru

IT Софт для ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Определить страну по ip адресу

Найти расположение IP-адреса

Информация о расположении IP-адреса

95.47.253.202
Хостip-202.brok-x.ks.ua
КонтинентЕвропа
UA
Украина
65
Херсонская область
Херсон
Широта46.6558
Долгота32.6178
73000
Europe/Kiev (UTC +02:00)
ISP Brok-X (PE Brok-X)
Точность

Расположение IP-адреса на карте

Геолокация по IP-адресу

Геолокация — это идентификация географического расположения устройства, такого как ПК, ноутбук, мобильный телефон, сервер, гаджет и так далее по IP-адресу.

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

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

IP2GeoLocation.com веб-сервис IP-геолокации обеспечивает поиск IP-адреса в базе геолокации и возвращает информацию о местоположении, такую как: континент, код страны, название страны, регион или штат, город, широта и долгота, почтовый индекс, часовой пояс, интернет-провайдер или название компании и так далее. Для поиска отправьте запрос в строку сервиса, и вы получите географическое расположение IP-адреса в течении нескольких секунд. Индекс результатов поиска включает в себя более 4 миллиардов уникальных IP-адресов.

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

Как узнать страну по IP-адресу через PHP

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

Узнать страну по IP-адресу через PHP можно двумя путями. Первый путь — это воспользоваться каким-нибудь WHOIS-сервисом, отправив на него запрос и получить от него ответ. Второй вариант — создать свою таблицу в базе данных, в которой будут находиться соответствия IP-адресов и стран. Плюсы и минусы первого и второго способа очевидны, поэтому не буду на них останавливаться. Второй способ реализации зависит от Вашей базы данных и от таблицы, в которой находятся соответствия IP-адресов и стран. Поэтому мы с Вами рассмотрим первый способ, так как он универсален, хотя, безусловно, на локальном сервере без подключения к Интернету Вы не сможете протестировать данный скрипт:

Кратко принцип: находим сервис, смотрим, как надо отправлять запрос (как называются переменные, каким методом отправляются), отправляем через cURL запрос, получаем ответ, вытаскиваем нужную строку через регулярные выражения, выводим результат. Если Вы запустите этот скрипт, то увидите название страны, которой принадлежит Ваш IP-адрес. Однако, стоит отметить, что далеко не для каждого IP-адреса возможно узнать страну. Тут зависит от базы, которую использует конкретный WHOIS-сервис. Сразу скажу, что для тестирования этого скрипта надо его загрузить на удалённый сервер, чтобы не подставлялся IP-адрес: 127.0.0.1, так как он не сработает, ведь для него страны не сущесвует. Либо же просто замените значение переменной $ip на какой-нибудь другой IP-адрес. Как видите, всё очень просто, главное, здесь чётко выбрать один из двух способов. Если Вы захотите узнавать страну по IP-адресу через свою базу данных, то тогда Вам надо её предварительно найти. Их достаточно много, поэтому просто поищите их в Интернете. А если Вас устраивает пользоваться WHOIS-сервисом и экономить ресурсы своего сервера и место в базе данных, то тогда можете использовать код выше, а, доработав регулярное выражение, Вы можете вытащить и другие данные, которые выдаёт данный сервис, например, город.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Читать еще:  Мой адрес в контакте

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 20 ):

    Прошу заметить, что значение $matches[1][1] возвращается к пользователю со значением «
    » (Например — Russian Federation
    ) Поэтому сравнивать данное значение с постоянной константой не получится.

    Что означает эта запись: «if( $curl = curl_init() )» ? По этому примеру мне выдает ошибку: «Fatal error: Call to undefined function curl_init() «

    Михаил, подскажите пожалуйста, как сделать, что блоки по клику сворачиваются — слева колонка — круто) JQuery?

    Спасибо) а как делается так, чтоб комментарии лесенкой располагались?

    Через CSS, каждый внутренний ul содержит дополнительный margin-left.

    понимаю, что css, тег ul знаком, свойство margin-left также знакомо, непонимаю алгоритма реализации такой фишки =

          — и так далее. И в CSS ul

        благодарю) буду пробовать — может и получится у меня))

        Михаил, как дальше завязать результат и страницы мультиязычного сайта? Сайт на DLE имеет три языковых версии рус,нем и анг. как определить страну и вывести нужную версию сайта?

        Не работаю с готовыми движками: http://myrusakov.ru/php-engine-vs-null.html

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

        Разница не просто есть, она бесконечно огромная. И раз Вы задаёте этот вопрос, то это и есть разница. Нет никаких кодов. Вам нужны расширения.

        Страну не правильно выводит, почему?

        Может потому, что интернет у пользователя через прокси.

        Как можно реализовать на сайте вывод контента для каждого региона свой.

        А это точно не устаревший скрипт? я новичок в пхп просто если ввести в браузер http://ip-whois.net/ip_geo.php?ip=123.32.45 (например), то сервис пишет, что страницы не существует к примеру я подставлял свой правильный ip тоже

        Скрипт устаревший. Теперь не ip_geo.php, а ip_geos.php. Ну типа так http://ip-whois.net/ip_geos.php?ip=123.32.45.21. Но скрипт все равно не работает. Видать название полей изменили.

        Скрипт в принципе рабочий, нужно только подменить ip_geo.php на а ip_geos.php, другое дело, что он не оптимален. Как по мне, достаточно вот такого краткого кода, специально добавил комментарии чтобы всем было ясно: /** * Узнаем IP адресс пользователя */ $ip = $_SERVER[‘REMOTE_ADDR’]; /** * Получаем информацию относительно IP * (страна, город и другая информация */ $details = json_decode(file_get_contents(«http://ipinfo.io/<$ip>/json»)); /* Выводим информацию о IP */ echo $details->ip; echo $details->hostname; echo $details->city; echo $details->region; echo $details->country; echo $details->loc; echo $details->org; echo $details->postal;

        Для добавления комментариев надо войти в систему.
        Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

        Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

        Как вычислить (город пользователя) по IP

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

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

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

        Существует 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

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

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

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

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

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

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

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

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

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

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

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

        Детализация. На выборке в 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.

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

        Детализация. На выборке в 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 — точность радиуса координат в километрах.

        Детализация. На выборке в 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 делается просто:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        Как в PHP узнать IP пользователя и определить его страну?

        В этой статье рассмотрим, как в PHP можно узнать IP клиента и сервера, а также разберём как зная IP клиента определить его страну и город.

        Как в PHP получить IP адрес посетителя сайта?

        Получить IP адрес клиента в PHP можно через суперглобальный массив $_SERVER . В этом массиве IP адрес посетителя доступен через ключ REMOTE_ADDR .

        Но, если клиент использует прокси-сервер, то значение $_SERVER[‘REMOTE_ADDR’] будет содержать IP последнего прокси-сервера, через который клиент попал на сайт.

        В этом случае, чтобы узнать IP посетителя можно попробовать использовать $_SERVER[‘HTTP_CLIENT_IP’] и $_SERVER[‘HTTP_X_FORWARDED_FOR’] . HTTP_CLIENT_IP и HTTP_X_FORWARDED_FOR – это заголовки, содержащие IP адрес пользователя. Данные заголовки устанавливает прокси-сервер. Обычно прокси-сервер устанавливает один из них. Данным в этих заголовках можно доверять, только если прокси-сервер надёжный. В противном случае, им доверять не стоит, т.к. их можно очень просто подделать. В этом случае лучше просто использовать $_SERVER[‘REMOTE_ADDR’] или сохранять в базу как $_SERVER[‘REMOTE_ADDR’] , так и заголовок, устанавливаемый прокси-сервером.

        Определение страны по ip с помощью Sypex Geo

        Основные шаги по созданию php скрипта, с помощью которого можно будет определять страну по ip:

        1. Скачаем Sypex Geo для PHP и базу данных стран. Sypex Geo распространяется по лицензии BSD, т.е. является абсолютно бесплатным.

        2. Распакуем архивы и загрузим на сервер файлы «SxGeo.php» и «SxGeo.dat». В качестве примера, создадим на сервере папку SxGeo и загрузим эти файлы в неё.

        3. Создадим свой скрипт, например, «get_country_code.php».

        4. Вставим в этот файл следующий код:

        5. Включим файл «get_country_code.php» в другие скрипты, в которых нужно реализовать выполнение кода в зависимости от принадлежности ip посетителя к той или иной стране.

        Определение города по ip с помощью Sypex Geo

        Для определения города, потребуется загрузить архив с базой данных городов для Sypex Geo, распаковать его и загрузить на сервер.

        Скрипт в этом случае будет следующий:

        Для автоматического обновления баз можно воспользоваться этим архивом. В этом архиве находится php скрипт. Этот скрипт необходимо настроить, т.е. указать в нём URL для скачивания базы и пути к файлам на сервере. После этого загрузить его на сервер и настроить его запуск по расписанию с помощью cron.

        Определение страны и города по ip через сервис через сервис ipstack

        Рассмотрим ещё один вариант определения в php местоположения по ip посетителя, но уже не через Sypex Geo, а с помощью сервиса ipstack.

        Сервис ipstack имеет бесплатный план, который позволяет обрабатывать до 10000 запросов в месяц.

        Для получения бесплатного плана нажимаем на кнопку «GET FREE API KEY» и переходим на страницу, на которой нужно заполнить регистрационную карточку.

        После регистрации, на личной странице ipstack вам будет назначен «API Access Key», который нужно скопировать. Он нам потребуется при создании php скрипта.

        Как в PHP получить IP адрес сервера?

        Узнать IP адрес сервера в PHP можно с помощью следующей инструкции:

        Пример реализации определения локации в CMS MODX

        В качестве примере рассмотрим, как в CMS MODX Revolution можно очень просто без сторонних сервисов осуществить определение страны посетителя. Разработаем решение на базе Sypex Geo.

        1. Для этого сначала нужно загрузить Sypex Geo в проект:

        Файл «SxGeo.php» – это основной скрипт, а «SxGeo.dat» – это база стран. Этих двух файлов достаточно для определения страны пользователя по его ip. Дополнительно в каталоге SxGeo ещё расположен файл «SxGeoCity.dat», данный файл в текущей реализации не нужен, он может потребовать, если в проекте потребуется определять не только страну пользователя, а ещё его регион и город.

        2. Создадим сниппет, например «get_location.php». В качестве примера организуем это с помощью файлов. Для этого нужно чтобы был установлен pdoTools и в настройках включена опция «Использовать Fenom на страницах».

        Код сниппета «get_location.php»:

        Поместим файл «get_location.php» в каталог /core/elements/snippets/ .

        Данный сниппет будет определять страну и помещать его код в плейсхолдер countrycode .

        3. После этого в нужных шаблонах поместим код вызова сниппета и сохранение значение плейсхолдера countrycode в переменную $country_code .

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

    Ссылка на основную публикацию
    Adblock
    detector