API для определения местоположения по IP адресу или как сделать геолокацию на сайте?

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

Скриншот 1

Начну я с вопроса, а зачем вообще нужен такой функционал на сайте?

Зачем нужно определять местоположение посетителей?

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

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

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

Как определять местоположение посетителей?

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

  • Простота интеграции функционала в свое приложение;
  • Отсутствие необходимости настраивать локальные библиотеки GeoIP.

Во многих популярных CMS, включая и WordPress, и Joomla, есть различные плагины, модули и компоненты, которые, так или иначе, используют данные о местоположении посетителя. Функционал в подобных компонентах и плагинах в большинстве случаев как раз и использует API интерфейс для определения местоположения посетителя. Поэтому если Вы хотите реализовать свой виджет, плагин, модуль или компонент, который должен работать с данными геолокации, то использование API будет наиболее простым решением.

Принцип использования API для реализации геолокации следующий: Вы определяете IP адрес посетителя, затем делаете обычный GET запрос к интернет сервису, который позволяет определять местоположение по IP адресу, и у которого есть API интерфейс, а в качестве параметра Вы как раз и передаете IP адрес посетителя. В ответ он Вам возвращает данные о геолокации, обычно в формате XML или JSON, Вам, в свою очередь, остается обработать полученные данные.

API геолокации по IP адресу – обзор сервиса IPWHOIS.IO

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

Скриншот 2

Основные особенности IPWHOIS.IO:

  • Обновление данных в режиме реального времени – Вы всегда будете получать только актуальную информацию, при этом самостоятельно Вам ничего не нужно обновлять;
  • Быстрая работа — серверы IPWHOIS.io расположены по всему миру, что позволяет обрабатывать запросы максимально быстро;
  • Безопасная работа – взаимодействие с сервисом происходит по защищенному протоколу HTTPS;
  • Поддержка IPv4 и IPv6 – в качестве параметра Вы можете предавать адреса и IPv4, и IPv6;
  • Поддержка JSON, XML и Newline – сервис может возвращать данные в нескольких форматах на Ваш выбор, это может быть JSON, XML или Newline;
  • Доступно бесплатное использование – сервис позволяет обрабатывать до 1000 запросов в день абсолютно бесплатно, если у Вас небольшой проект, то Вам за использование этого сервиса даже платить не нужно.

Как работать с IPWHOIS.IO?

Сейчас давайте я покажу, как происходит взаимодействие с этим сервисом. Кстати, этот сервис Вы можете использовать и для простого определения местоположения по IP адресу, иными словами, если Вам нужно получить информацию об IP адресе, т.е. геолокацию, Вы можете зайти на IPWHOIS.IO, ввести нужный IP адрес и в ответ получить всю необходимую информацию. Для начала давайте я покажу, как это делается, т.е. как узнать местоположение по IP адресу, разработчики таким способом могут просто проверить работу сервиса.

Переходим на сайт сервиса https://ipwhois.io/ и вводим в специальное поле нужный IP адрес. По умолчанию отображается информация о Вашем IP адресе, другими словами, чтобы получить информацию о Вашем собственном местоположении по IP адресу, достаточно просто перейти на сайт этого сервиса.

Для того чтобы узнать местоположение по какому-то чужому IP, как я уже сказал, вводим IP в поле и нажимаем кнопку поиска.

Скриншот 3

Чтобы получить точно такую же информацию, но уже, например, в формате JSON можно послать следующий GET запрос

   
    http://free.ipwhois.io/json/8.8.4.4

где

  • free.ipwhois.io — адрес интерфейса, для бесплатного использования он такой;
  • json – формат возвращаемых данных, если указать XML, то, соответственно, данные вернутся в формате XML;
  • 8.8.4.4 – IP адрес, местоположение которого нужно узнать.

В данном случае в ответ Вы получите следующие данные (формат JSON):

   
        {
          "ip": "8.8.4.4",
          "success": true,
          "type": "IPv4",
          "continent": "North America",
          "continent_code": "NA",
          "country": "United States",
          "country_code": "US",
          "country_flag": "https://cdn.ipwhois.io/flags/us.svg",
          "country_capital": "Washington",
          "country_phone": "+1",
          "country_neighbours": "CA,MX,CU",
          "region": "Virginia",
          "city": "Ashburn",
          "latitude": 39.0437567,
          "longitude": -77.4874416,
          "asn": "AS15169",
          "org": "Level 3 Communications",
          "isp": "Level 3 Communications",
          "timezone": "America/New_York",
          "timezone_name": "Eastern Standard Time",
          "timezone_dstOffset": 0,
          "timezone_gmtOffset": -18000,
          "timezone_gmt": "GMT -5:00",
          "currency": "US Dollar",
          "currency_code": "USD",
          "currency_symbol": "$",
          "currency_rates": 1,
          "currency_plural": "US dollars"
        }

Что означает каждый из этих параметров, Вы можете найти в документации, если вкратце, то:

  • ip — Запрашиваемый IP адрес;
  • success — Статус операции;
  • message — Сообщение в случае ошибки (success = false);
  • type — Тип IP адреса (IPv4 или IPv6);
  • continent — Название континента;
  • country — Название страны;
  • region — Регион;
  • city – Город;
  • isp — Имя провайдера;
  • currency_code — Код валюты страны.

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

У меня все, надеюсь, этот сервис поможет Вам сделать геолокацию на сайте или в своем приложении, пока!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.