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

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

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

GeoIp Api

Модуль предоставляет api для определения местоположения по ip-адресу. Если ip-адрес не указан явно, то местоположение определяется по текущему ip пользователя. В местоположение входят: город; код страны; название страны на языке сайта; код страны в CMS 1С Битрикс регион; район; ширина и долгота; диапазон адресов, в который входит переданный ip. Местоположение определяется по 2м службам: ipgeobase.ru и freegeoip.net. В случае необходимости, данные из первой уточняются данными из второй. Для уменьшения количества запросов, полученная информация сохраняется в куках. Пример использования: 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->getCountryId() . '<br>'; // 1         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         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->getCity() . '<br>';        // Mountain View         echo 'код страны: '         . $location->getCountry() . '<br>';     // US         echo 'название страны: '    . $location->getCountryName() . '<br>'; // США         echo 'код страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 122         echo 'регион: '             . $location->getRegion() . '<br>';      // California         echo 'округ: '              . $location->getDistrict() . '<br>';    //         echo 'широта: '             . $location->getLat() . '<br>';         // 37.4192         echo 'долгота: '            . $location->getLng() . '<br>';         // -122.0574         echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     //         echo 'сервис: '             . $location->getService() . '<br>';     // FreeGeoIp     } catch (\Exception $e) {         echo $e->getMessage();     } } else     echo 'Модуль GeoIp Api не установлен'; Компоненты Указатель местоположения пользователей (geoip.user.location) Позволяет установить местоположение для пользователей на основе данных из модуля. Местоположение определяется по ip-адресу, с которого они впервые зашли на сайт. Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoip Требования php версии 5.4 или выше установленная на хостинге библиотека CURL

Описание

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

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

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

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

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

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

Пример использования:
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->getCountryId() . '<br>'; // 1
        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
        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->getCity() . '<br>';        // Mountain View
        echo 'код страны: '         . $location->getCountry() . '<br>';     // US
        echo 'название страны: '    . $location->getCountryName() . '<br>'; // США
        echo 'код страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 122
        echo 'регион: '             . $location->getRegion() . '<br>';      // California
        echo 'округ: '              . $location->getDistrict() . '<br>';    //
        echo 'широта: '             . $location->getLat() . '<br>';         // 37.4192
        echo 'долгота: '            . $location->getLng() . '<br>';         // -122.0574
        echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     //
        echo 'сервис: '             . $location->getService() . '<br>';     // FreeGeoIp

    } catch (\Exception $e) {
        echo $e->getMessage();
    }
} else 
    echo 'Модуль GeoIp Api не установлен';

Компоненты

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

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


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

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

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

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

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

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

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