Сервисы Geo IP

Частенько бывают проекты, в которых необходимо определять город/страну пользователя по его ip. Цель чаще всего одна — повышение конверсии за счет выдачи нужной информации с учетом города посетителя. Это актуально как в магазинах, так и на лендингах. Под катом небольшой список сервисов, которые предоставляют бесплатный API для получения такой инфы или бесплатные базы.

Очень простое API у сервиса http://geoiplookup.net/xml-api/  — кидаем ему ip и получаем инфу в виде xml. Но вся инфа на ангийском, русских названий нет.

https://ipinfodb.com/api — более продвинутое API с возможностью выбора формата получаемых данных, но требуется регистрация. Так же этот сервис предоставляет бесплатную базу, которую можно поставить на свой сервер и работать напрямую с ней. Сервис тоже буржуйский и все на английском.

Ну и напоследок сервис, которым пользуюсь чаще всего — https://sypexgeo.net/ru/api/ . Хорошее API с большим количеством информации, как на русском, так и на английском языках. Бесплатно и без регистрации доступно 10000 запросов в месяц. Так же можно использовать их бинарную базу данных у себя на сервере, это абсолютно бесплатно. Я почти во всех проектах использовал именно базу данных, а не API. Этого чаще всего достаточно, но есть минус — базу нужно периодически обновлять, а в API всегда свежие данные.

Работать с sypexgeo очень удобно, есть свой php класс для работы с базой. Пример работы:

<?php
// Пример работы с классом SxGeo v2.2
header('Content-type: text/plain; charset=utf8');

// Подключаем SxGeo.php класс
include("SxGeo.php");
// Создаем объект
// Первый параметр - имя файла с базой (используется оригинальная бинарная база SxGeo.dat)
// Второй параметр - режим работы: 
//     SXGEO_FILE   (работа с файлом базы, режим по умолчанию); 
//     SXGEO_BATCH (пакетная обработка, увеличивает скорость при обработке множества IP за раз)
//     SXGEO_MEMORY (кэширование БД в памяти, еще увеличивает скорость пакетной обработки, но требует больше памяти)
$SxGeo = new SxGeo('SxGeoCity.dat');
//$SxGeo = new SxGeo('SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY); // Самый производительный режим, если нужно обработать много IP за раз

$ip = $_SERVER['REMOTE_ADDR'];

var_export($SxGeo->getCityFull($ip)); // Вся информация о городе
var_export($SxGeo->get($ip));         // Краткая информация о городе или код страны (если используется база SxGeo Country)
var_export($SxGeo->about());          // Информация о базе данных

 

This entry was posted in Php, Памятка and tagged , , . Bookmark the permalink.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*