Скриншоты

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

Дата публикации:
10.12.2016
Дата обновления:
07.01.2019
Версия:
1.4.8
Адаптивность:
Да
Поддержка композита:
Да
Число установок:
Более 1000 раз

Совместимые редакции

Описание

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

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

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

Пример использования:
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->setLanguage('en');
           $location->reload('173.194.222.94'); // google.ru
   
           echo 'ip: '                 . $location->getIp() . '<br>';          // 173.194.222.94
           echo 'город: '              . $location->getCityName() . '<br>';        // Mountain View
           echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // US
           echo 'название страны: '    . $location->getCountryName() . '<br>'; // USA
           echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 122
           echo 'регион: '             . $location->getRegionName() . '<br>';      // California
           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 не установлен';

Компоненты

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

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


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

Требования
  • php версии 5.3 или выше
  • установленная на хостинге библиотека CURL
  • модуль «Веб-аналитика» (для работы компонента rover:geoip.user.location)
Если вам нужен более расширенный функционал и более «пользовательский» интерфейс с похожим функционалом, рекомендую решение «Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города».
После стандартной установки модуля, его api будет доступно для ваших проектов.

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

Требования
  • php версии 5.3 или выше
  • установленная на хостинге библиотека CURL
  • модуль «Веб-аналитика» (для работы компонента rover:geoip.user.location)

Установите этот модуль прямо сейчас!

Для этого укажите адрес сайта:

пример: http://www.site.ru
GeoIp Api
GeoIp Api
Бесплатно