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

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

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

GeoIp Api

Модуль предоставляет api для определения местоположения по ip-адресу. Если ip-адрес не указан явно, то местоположение определяется по текущему ip пользователя. В местоположение входят: город; код страны; название страны на русском языке; регион; район; ширина и долгота; диапазон адресов, в который входит переданный ip. Местоположение определяется по 2м службам: ipgeobase.ru и freegeoip.net. В случае необходимости, данные из первой уточняются данными из второй. Для уменьшения количества запросов, полученная информация сохраняется в куках. Пример использования: Для сайта в кодировке utf-8 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->getCity() . '<br>';        // Москва         echo 'код страны: '         . $location->getCountry() . '<br>';     // RU         echo 'название страны: '    . $location->getCountryName() . '<br>'; // Россия         echo 'регион: '             . $location->getRegion() . '<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     } catch (\Exception $e) {         echo $e->getMessage();     } } else     echo 'Модуль GeoIp Api не установлен';Для сайта в кодировке windows-1251: use Bitrix\Main\Loader,     Rover\GeoIp\Location,     Rover\GeoIp\Service\Base; if (Loader::includeModule('rover.geoip')){     try{         ...                  $location = Location::getInstance('5.255.255.88', Base::CHARSET__WINDOWS_1251); // yandex.ru                  ...Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoip Требования php версии 5.4 или выше установленная на хостинге библиотека CURL

Описание

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

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

Описание решения

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

В местоположение входят:
  • город;
  • код страны;
  • название страны на русском языке;
  • регион;
  • район;
  • ширина и долгота;
  • диапазон адресов, в который входит переданный ip.
Местоположение определяется по 2м службам: ipgeobase.ru и freegeoip.net. В случае необходимости, данные из первой уточняются данными из второй.

Для уменьшения количества запросов, полученная информация сохраняется в куках.

Пример использования:

Для сайта в кодировке utf-8
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->getCity() . '<br>';        // Москва
        echo 'код страны: '         . $location->getCountry() . '<br>';     // RU
        echo 'название страны: '    . $location->getCountryName() . '<br>'; // Россия
        echo 'регион: '             . $location->getRegion() . '<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
    } catch (\Exception $e) {
        echo $e->getMessage();
    }
} else 
    echo 'Модуль GeoIp Api не установлен';
Для сайта в кодировке windows-1251:
use Bitrix\Main\Loader,
    Rover\GeoIp\Location,
    Rover\GeoIp\Service\Base;

if (Loader::includeModule('rover.geoip')){
    try{
        ...
        
        $location = Location::getInstance('5.255.255.88', Base::CHARSET__WINDOWS_1251); // yandex.ru
        
        ...
Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoip

Требования
  • php версии 5.4 или выше
  • установленная на хостинге библиотека CURL
Отзывы (0)
Обсуждения (5)
Что нового
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.4 или выше и библиотеки CURL.
Поддержка
По всем вопросам, предложениям и ошибкам вы можете связаться со мной через электропочту rover.webdev@gmail.com или форму на сайте http://rover-it.me.

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

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

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

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки
Для установки данного решения необходимо указать адрес вашего сайта, на котором установлен 1С-Битрикс. Вам также потребуется авторизоваться на своем сайте под правами Администратора, чтобы продолжить установку.
Как установить дополнение