Преимущества использования API геолокации по IP в своих проектах
- Зачем вообще нужно определение местоположения посетителя?
- Как определить и насколько это затратно?
- Инструкция по началу работы
Для современных интернет-магазинов, сайтов по предложению какого-либо товара или услуг, других разнообразных интернет-ресурсов для продвижения и правильной направленности на клиента, необходимо знать где находится основная аудитория. Так же часто встаёт вопрос: как отфильтровать нежелательный трафик и защитить сайт. В этой статье мы попробуем доступно и понятно объяснить зачем это нужно и как способствует в дальнейшем развитии.
Зачем вообще нужно определение местоположения посетителя?
Обычно любой веб-сайт может охватывать достаточно обширную аудиторию и располагаться она может по всему миру, но при этом для каждой страны нужен и соответствующий контент. Включая язык, валюту, цену и многое другое.
Касается это и регионов в одной стране и даже городов, везде информация может быть различной, как и её подача. Тем более это относится к тем ресурсам, где несколько филиалов и чтобы до покупателя дошли именно нужные данные нужно знать его геолокацию.
Необходимо это и для более эффективного контроля за трафиком, особенно нежелательному и при обилии посещения спамо-ботами.
Как определить и насколько это затратно?
Способов изобрели уже достаточно, постараемся определиться с наилучшим. В большинстве известных и популярных CMS, включая и WordPress, и Joomla уже включены различные плагины и модули, которые хорошо или плохо, но занимаются сбором данных по местонахождению. В них использую как раз таки API интерфейс, поэтому наиболее простым решением будет для своих задумок в виджетах и компонентах тоже использовать его.
Он наиболее прост в обращении и очень часто используется разработчиками. Его главные преимущества:
- Простота интеграции в любое приложение
- Не придётся настраивать и устанавливать локальные библиотеки GeoIP
- Сам принцип использования:
- Определяете
IP
адрес любого человека, который посетил сайт. - Посылаете
GET
запрос к выбранному сервису, который занимается определением местоположение поIP
, с наличием API интерфейса. - Ждёте получения информации о геолокации, обычно в формате
XML
илиJSON
, либоNewline
. - Обрабатываете данные. Всё очень легко, не требует профессиональных навыков и знаний.
- Наиболее интересный сервис такого плана — IPWHOIS.io
- Определяете
Он менее затратный и проверенный временем. При использовании в месяц можно получить бесплатное API для 10 тысяч запросов, если вам этого мало то цены на дальнейшее применение приятно удивят.
Обзор сервиса IPWHOIS.IO:
- Главное безопасность данных. Все передачи с сервисом проходят по хорошо защищенному протоколу
HTTPS
. Разработчики используют 256-битное шифрование SSL. - Передача и поддержка
IPv4
, иIPv6
. - Мощные сервера во всех уголках мира, что позволяет максимально точно и быстро обработать ваш запрос, время отклика до 90 миллисекунд.
- База обновляется в режиме реального времени, у вас всегда свежая информация. Достигается это при помощи интегрирования с несколькими каналами (
RIPE, APNIC, ARIN, AFRINIC
и другими). - Выбор формата при возвращении данных.
- При наличии небольшого проекта вам даже не придется брать платные услуги, хватит и бесплатных 10 тысяч запросов в месяц. Хотите неограниченное количество, то на официальном сайте можно узнать дополнительную стоимость пакета.
- Бесплатный API не требует ключа.
Инструкция по началу работы
Вы можете вызвать API, отправив GET запрос:
http://free.ipwhois.io/json/{IP}
{IP}
может быть IPv4
или IPv6
адресом, оставьте параметр пустым чтобы использовать текущий IP-адрес.
Примечание: Полная документация по использованию этого API доступна по адресу https://ipwhois.io/documentation.
Пример PHP функции:
<?php $ip = "CLIENT_IP_ADDRESS"; $location = get_ipwhois($ip); $decodedLocation = json_decode($location, true); echo "<pre>"; print_r($decodedLocation); echo "</pre>"; function get_ipwhois($ip, $format = "json", $lang = "en") { $url = "http://free.ipwhois.io/".$format."/".$ip."?lang=".$lang; $cURL = curl_init(); curl_setopt($cURL, CURLOPT_URL, $url); curl_setopt($cURL, CURLOPT_HTTPGET, true); curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); curl_setopt($cURL, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Accept: application/json' )); return curl_exec($cURL); } ?>