Использование API геолокации по IP на интернет-сайтах

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

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

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

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

Реализовать данный способ лучше через специализированные сервисы, которые предоставляют API геолокации по IP . Основные преимущества:
— простота интеграции. Для популярных CMS есть уже готовые плагины, которые еще больше облегчают данный процесс;
— отпадает необходимость контролировать актуальность базы данных, это контролируется специалистами сервиса, которые используют для этого профессиональное ПО;
— для пользователя процесс определения геолокации проходит незаметно, без раздражающих запросов.

Схема работы довольно проста и в общих чертах выглядит следующим образом:
— фиксируется IP-адрес пользователя;
— при помощи GET-запроса адрес передается соответствующему сервису;
— в ответ отправляется набор данных, обычно используется формат JSON, XML или Newline.

В качестве примера рассмотрим работу с сервисом https://ipwhois.io/ru/

Ключевые преимущества сервиса:
— передаваемые данные надежно защищены при помощи 256-битного шифрование SSL, используется протокол HTTPS;
— поддерживаются стандарты IPv6 и IPv4;
— распределенная сеть серверов обеспечивает стабильную работу и высокую скорость, независимо от того, из какой страны отправляется API-запрос;
— база адресов обновляется в режиме реального времени, для чего используется самообучающаяся нейронная сеть;
— есть возможность выбрать удобный формат ответа;
— для небольших проектов будет достаточно бесплатного лимита – 10 тысяч запросов в месяц.

Для вызова API достаточно использовать GET-запрос следующего формата:

http://free.ipwhois.io/json/{IP}

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

{
"ip":"хх.ххх.ххх.хх",
"success":true,
"type":"IPv4",
"continent":"Europe",
"continent_code":"EU",
"country":"Russia",
"country_code":"RU",
"country_flag":"https:\/\/cdn.ipwhois.io\/flags\/ru.svg",
"country_capital":"Moscow",
"country_phone":"+7",
"country_neighbours":"AZ,BY,CN,EE,FI,GE,KP,KZ,LT,LV,MN,NO,PL,UA",
"region":"Krasnodar Krai",
"city":"Krasnodar",
"latitude":45.0392674,
"longitude":38.987221,
"asn":"AS50466",
"org":"Noutek Ltd",
"isp":"Noutek Ltd",
"timezone":"Europe\/Moscow",
"timezone_name":"MSK",
"timezone_dstOffset":0,
"timezone_gmtOffset":10800,
"timezone_gmt":"+03:00",
"currency":"Russian Ruble",
"currency_code":"RUB",
"currency_symbol":"\u20bd",
"currency_rates":63.749998,
"currency_plural":"Russian rubles"
}




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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: