Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!
Условия использования
Продлить
Продолжить покупки

GeoIp Api

Модуль предоставляет api для определения местоположения по ip-адресу. Если ip-адрес не указан явно, то местоположение определяется по текущему ip пользователя. Для уменьшения количества запросов, информация о последнем ip-адресе сохраняется в куках.В местоположение входят:название города;название страны на языке сайта;iso-код страныid страны в CMS 1С Битрикс (соответствуют id стран, возвращаемых функцией GetCountryArray)название региона;iso-код региона (опционально);название района (опционально);ширина и долгота;диапазон ip-адресов (опционально).В зависимости от выбранной службы, значения некоторых полей могут отсутствовать либо отображаться на английском языке.В обычном режиме решение предоставляет данные из первой службы, корректно вернувшей данные. Службы вызываются в следующем порядке:ipgeobase.ru (IpGeoBase);sypexgeo.net (Sypex);freegeoip.net (FreeGeoIp).В случае необходимости, можно явно указать необходимую службу.Пример использования:use Bitrix\Main\Loader,        Rover\GeoIp\Location;    if (Loader::includeModule('rover.geoip')){        try{            echo 'ваш ip: ' . Location::getCurIp() . '<br><br>'; // текущий ip                       $location = Location::getInstance('5.255.255.88'); // yandex.ru                       echo 'ip: '                 . $location->getIp() . '<br>';          // 5.255.255.88            echo 'город: '              . $location->getCityName() . '<br>';        // Москва            echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // RU            echo 'название страны: '    . $location->getCountryName() . '<br>'; // Россия            echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 1            echo 'регион: '             . $location->getRegionName() . '<br>';      // Москва            echo 'iso-код региона: '    . $location->getRegionCode() . '<br>';      //            echo 'округ: '              . $location->getDistrict() . '<br>';    // Центральный федеральный округ            echo 'широта: '             . $location->getLat() . '<br>';         // 55.755787            echo 'долгота: '            . $location->getLng() . '<br>';         // 37.617634            echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     // 5.255.252.0 - 5.255.255.255            echo 'сервис: '             . $location->getService() . '<br><br>';     // IpGeoBase                       $location->reload('173.194.222.94'); // google.ru               echo 'ip: '                 . $location->getIp() . '<br>';          // 173.194.222.94            echo 'город: '              . $location->getCityName() . '<br>';        // Маунтин-Вью            echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // US            echo 'название страны: '    . $location->getCountryName() . '<br>'; // США            echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 122            echo 'регион: '             . $location->getRegionName() . '<br>';      // Калифорния            echo 'iso-код региона: '    . $location->getRegionCode() . '<br>';      // US-CA            echo 'округ: '              . $location->getDistrict() . '<br>';    //            echo 'широта: '             . $location->getLat() . '<br>';         // 37.38605            echo 'долгота: '            . $location->getLng() . '<br>';         // -122.08385            echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     //            echo 'сервис: '             . $location->getService() . '<br>';     // Sypex                   } catch (\Exception $e) {            echo $e->getMessage();        } } else        echo 'Модуль GeoIp Api не установлен';КомпонентыУказатель местоположения пользователей (geoip.user.location)Позволяет установить местоположение для пользователей на основе данных из модуля. Местоположение определяется по ip-адресу, с которого они впервые зашли на сайт. Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoipТребованияphp версии 5.3 или вышеустановленная на хостинге библиотека CURL

Описание

Технические данные

Опубликовано:
10.12.2016
Обновлено:
12.12.2017
Версия:
1.4.3
Установлено:
100 - 499 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Эксперт», «Бизнес», «Корпоративный портал», «Энтерпрайз»
Адаптивность:
Да
Поддержка Композита:
Да

Описание

Модуль предоставляет api для определения местоположения по ip-адресу. Если ip-адрес не указан явно, то местоположение определяется по текущему ip пользователя. Для уменьшения количества запросов, информация о последнем ip-адресе сохраняется в куках.

В местоположение входят:
  • название города;
  • название страны на языке сайта;
  • iso-код страны
  • id страны в CMS 1С Битрикс (соответствуют id стран, возвращаемых функцией GetCountryArray)
  • название региона;
  • iso-код региона (опционально);
  • название района (опционально);
  • ширина и долгота;
  • диапазон ip-адресов (опционально).
В зависимости от выбранной службы, значения некоторых полей могут отсутствовать либо отображаться на английском языке.

В обычном режиме решение предоставляет данные из первой службы, корректно вернувшей данные. Службы вызываются в следующем порядке:
  • ipgeobase.ru (IpGeoBase);
  • sypexgeo.net (Sypex);
  • freegeoip.net (FreeGeoIp).
В случае необходимости, можно явно указать необходимую службу.

Пример использования:
use Bitrix\Main\Loader,
       Rover\GeoIp\Location;

   if (Loader::includeModule('rover.geoip')){
       try{
           echo 'ваш ip: ' . Location::getCurIp() . '<br><br>'; // текущий ip
           
           $location = Location::getInstance('5.255.255.88'); // yandex.ru
           
           echo 'ip: '                 . $location->getIp() . '<br>';          // 5.255.255.88
           echo 'город: '              . $location->getCityName() . '<br>';        // Москва
           echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // RU
           echo 'название страны: '    . $location->getCountryName() . '<br>'; // Россия
           echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 1
           echo 'регион: '             . $location->getRegionName() . '<br>';      // Москва
           echo 'iso-код региона: '    . $location->getRegionCode() . '<br>';      // 
           echo 'округ: '              . $location->getDistrict() . '<br>';    // Центральный федеральный округ
           echo 'широта: '             . $location->getLat() . '<br>';         // 55.755787
           echo 'долгота: '            . $location->getLng() . '<br>';         // 37.617634
           echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     // 5.255.252.0 - 5.255.255.255
           echo 'сервис: '             . $location->getService() . '<br><br>';     // IpGeoBase
           
           $location->reload('173.194.222.94'); // google.ru
   
           echo 'ip: '                 . $location->getIp() . '<br>';          // 173.194.222.94
           echo 'город: '              . $location->getCityName() . '<br>';        // Маунтин-Вью
           echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // US
           echo 'название страны: '    . $location->getCountryName() . '<br>'; // США
           echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 122
           echo 'регион: '             . $location->getRegionName() . '<br>';      // Калифорния
           echo 'iso-код региона: '    . $location->getRegionCode() . '<br>';      // US-CA
           echo 'округ: '              . $location->getDistrict() . '<br>';    // 
           echo 'широта: '             . $location->getLat() . '<br>';         // 37.38605
           echo 'долгота: '            . $location->getLng() . '<br>';         // -122.08385
           echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     //
           echo 'сервис: '             . $location->getService() . '<br>';     // Sypex
           
       } catch (\Exception $e) {
           echo $e->getMessage();
       }
} else 
       echo 'Модуль GeoIp Api не установлен';

Компоненты

Указатель местоположения пользователей (geoip.user.location)

Позволяет установить местоположение для пользователей на основе данных из модуля. Местоположение определяется по ip-адресу, с которого они впервые зашли на сайт.


Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoip

Требования
  • php версии 5.3 или выше
  • установленная на хостинге библиотека CURL
Отзывы (2)

Обсуждения (5)
Что нового
1.4.3 (12.12.2017) Исправлен вывод ошибок при установке/удалении
1.4.2 (15.11.2017) Убран Exception, возникавший при попытке определить местоположения для ip v6. Теперь ошибки пишутся в ключ ERROR массива, получаемого из метода Location::getData(). Так же их можно получить, вызвав Location::getError().
1.4.1 (01.11.2017) Параметр ip в методе reload вновь сделан необязательным. По умолчанию перезагружается для текущего ip
Исправлены ошибки при установке
1.4.0 (24.10.2017) - добавлена новая служба для определения местоположения - Sypex
- возможность явно указывать службу для определения местоположения
- необходимая версия php понижена до 5.3
- добавлены некоторые методы для получения значений
- часть старых методов помечены устаревшими, они будут удалены в следующих версиях (см. документацию (https://github.com/pavelshulaev/geoip))
1.3.2 (03.10.2017) В класс \Rover\GeoIp\Location добавлен публичный метод getService, возвращающий сервис geoip, с помощью которого были получены данные
1.3.1 (08.07.2017) Добавлено авто-определение кодировки и сделано по-умолчанию
Добавлена корректная обработка адресов в формате IPv6. Модуль больше не выдаёт ошибку, но определение местоположения пока недоступно.
1.3.0 (30.06.2017) Добавлен метод reload для многократного использования объекта определения местоположения
Улучшен алгоритм определения страны
Добавлен компонент для определения и обновления местоположения пользователей
1.2.3 (15.06.2017) Добавлен метод public Location::getCountryId() , возвращающий код страны в Битриксе (если удалось определить)
1.2.2 (24.05.2017) Исправлено отображение названия страны в кодировке windows-1251
В описании добавлен пример использования в кодировке windows-1251
1.2.1 (23.05.2017) Восстановлена совместимость с php 5.4
1.2.0 (27.02.2017) Добавлен поиск через службу freegeoip.net
1.1.0 (21.12.2016) Добавлен метод public getIp(), возвращающий ip, для которого создан объект \Rover\GeoIp\Location

Обновлена документация
1.0.1 (20.12.2016) метод получения текущего ip сделан публичным
Установка
После стандартной установки модуля, его api будет доступно для ваших проектов.

С api можно ознакомится здесь: https://github.com/pavelshulaev/geoip

Модуль требует установленного на хостинге php версии 5.3 или выше и библиотеки CURL.
Поддержка
По всем вопросам, предложениям и ошибкам вы можете связаться со мной через электропочту rover.webdev@gmail.com или форму на сайте https://rover-it.me.

Лицензионное соглашение

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки