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

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

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

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

GeoIp Api

Начиная с версии 2.0.0 модуль умеет расширяться без правки кода: список geoip-служб и порядок их вызова собираются через событие onBuildServiceList. Подключайте собственные geoip-службы из других модулей — достаточно зарегистрировать обработчик события и вернуть полное имя класса своей службы. Подробнее в репозитории проекта.Модуль предоставляет API для определения местоположения по IP-адресу. При отсутствии явного указания адреса определение производится по текущему IP пользователя. Информация о последнем IP-адресе сохраняется в cookies для снижения количества запросов.Если у вас истекла лицензия Битрикса, то можете скачать модуль с githubВключаемые данные о местоположенииназвание городаназвание страны на языке сайтаISO-код страныID страны в CMS 1С-Битриксназвание регионаISO-код регионаширота и долготаназвание района*диапазон IP-адресов**не заполняется встроенной службой Sypex; поле доступно, только если данные предоставляет сторонняя geoip-служба, подключённая через событие onBuildServiceList.Используемые службы определения местоположенияВ обычном режиме модуль предоставляет данные из первой службы, корректно вернувшей результат. Список служб и порядок их вызова собираются через событие onBuildServiceList — тем же способом подключена и единственная встроенная служба:sypexgeo.net (Sypex) — активна по умолчанию.Службы ipgeobase.ru (IpGeoBase) и freegeoip.net (FreeGeoIp) удалены из модуля, т.к. оба сервиса прекратили работу и не предоставляют публичный API. Разработчики могут подключить собственную geoip-службу через событие onBuildServiceList, не изменяя код модуля.КомпонентыУказатель местоположения пользователей (rover:geoip.user.location) — позволяет установить местоположение для пользователей на основе IP-адреса, с которого они впервые зашли на сайт. Доступен только администраторам. Для работы необходим установленный модуль «Веб-аналитика».Полное описание api и примеры использования на гитхабе проекта: https://github.com/pavelshulaev/geoipЕсли вам нужен более расширенный функционал и более «пользовательский» интерфейс с похожим функционалом, рекомендую решение «Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города».Если модуль был вам полезен, вы можете оставитьпожертвование тут ❤️ или тут❤️

Скриншоты
Описание

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

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

Пользовательское соглашение

Описание

Начиная с версии 2.0.0 модуль умеет расширяться без правки кода: список geoip-служб и порядок их вызова собираются через событие onBuildServiceList. Подключайте собственные geoip-службы из других модулей — достаточно зарегистрировать обработчик события и вернуть полное имя класса своей службы.
Подробнее в репозитории проекта.

Модуль предоставляет API для определения местоположения по IP-адресу. При отсутствии явного указания адреса определение производится по текущему IP пользователя. Информация о последнем IP-адресе сохраняется в cookies для снижения количества запросов.

Если у вас истекла лицензия Битрикса, то можете скачать модуль с github

Включаемые данные о местоположении
  • название города
  • название страны на языке сайта
  • ISO-код страны
  • ID страны в CMS 1С-Битрикс
  • название региона
  • ISO-код региона
  • широта и долгота
  • название района*
  • диапазон IP-адресов*

*не заполняется встроенной службой Sypex; поле доступно, только если данные предоставляет сторонняя geoip-служба, подключённая через событие onBuildServiceList.

Используемые службы определения местоположения

В обычном режиме модуль предоставляет данные из первой службы, корректно вернувшей результат. Список служб и порядок их вызова собираются через событие onBuildServiceList — тем же способом подключена и единственная встроенная служба:

  • sypexgeo.net (Sypex) — активна по умолчанию.
Службы ipgeobase.ru (IpGeoBase) и freegeoip.net (FreeGeoIp) удалены из модуля, т.к. оба сервиса прекратили работу и не предоставляют публичный API. Разработчики могут подключить собственную geoip-службу через событие onBuildServiceList, не изменяя код модуля.

Компоненты

Указатель местоположения пользователей (rover:geoip.user.location) — позволяет установить местоположение для пользователей на основе IP-адреса, с которого они впервые зашли на сайт. Доступен только администраторам. Для работы необходим установленный модуль «Веб-аналитика».


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


Если вам нужен более расширенный функционал и более «пользовательский» интерфейс с похожим функционалом, рекомендую решение «Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города».

Если модуль был вам полезен, вы можете оставитьпожертвование тут ❤️ или тут❤️
Отзывы (5)
Обсуждения (34)
Что нового
2.0.1 (11.08.2026) — Список geoip-служб теперь строится через событие `onBuildServiceList` модуля `rover.geoip` вместо жёсткого сканирования каталога `lib/service/`.
— Встроенная служба (Sypex) регистрируется тем же событием — можно подключать собственные службы из других модулей без правки ядра модуля (см. README, раздел «Расширение списком служб»).
— `Service::build()` упрощён: принимает только полное имя класса службы (FQCN); поддержка короткого имени убрана.
— Удалены службы IpGeoBase (ipgeobase.ru) и FreeGeoIp (freegeoip.net) — оба сервиса прекратили работу, публичное api недоступно. Вместе с классами удалены неиспользуемые опции `ipgeobase-active` и `freegoip-active`. При необходимости их можно подключить как сторонние службы через `onBuildServiceList`.
— Исправлена рассинхронизация кэша `Location::getInstance()`: `reload($ip)` с явно указанным ip теперь обновляет `$this->ip` и переиндексирует внутренний кэш инстансов, чтобы повторный `getInstance()` по старому ip не возвращал объект с данными уже другого адреса.
— `Location::getData()` при ошибке пишет в поле `error` текст исключения вместо статичной строки `'error'` — упрощает диагностику.
— Все обращения к строкам локализации переведены с устаревшей `GetMessage()` на `\Bitrix\Main\Localization\Loc::getMessage()`.
— Минимальная требуемая версия php повышена до 8.1 — синхронизирована проверка при установке (`install/index.php`) с фактическим рантайм-гейтом модуля (`include.php`). Ранее проверка при установке пропускала php 7.2, хотя модуль уже не грузился на версиях ниже 8.1.
— Компонент `rover:geoip.user.location`: получение IP регистрации пользователя переведено с прямого SQL-запроса к таблице `b_stat_session` на D7 API (`\Bitrix\Statistic\SessionTable`); при отсутствии установленного модуля «Веб-аналитика» метод корректно возвращает `null` вместо запроса к несуществующей таблице.
— Компонент `rover:geoip.user.location`: добавлена проверка прав — просматривать и изменять данные пользователей может только администратор (`$USER->IsAdmin()`); иначе выбрасывается исключение с сообщением о нехватке прав.
— Исправлена ошибка при обновлении модуля.
1.5.2 (22.05.2025) — исправлены найденные уязвимости
1.5.1 (06.02.2022) — добавлена возможность задавать максимальное время ожидания от geoip-сервиса. По умолчанию 200 мс.
1.5.0 (13.10.2021) — единственным сервисом для определения местоположения установлен Sypex (остальные на данный момент не работают)
— добавлена возможность подключаться к Sypex по ключу (при регистрации/подписке)
— время ожидания ответа сервиса сокращено с 2 до 0,2 секунд.
1.4.11 (03.06.2021) — исправлены ошибки в преобразовании кодировки ответов для сайтов в windows-1251
— минимальная версия php повышена до 7.2
— рефакторинг
1.4.9 (13.04.2020) — добавлена возможность задать региональный сервер для Sypex
— минимальна яверсия php повышена до 5.4
— прочие незначительные улучшения и доработки
1.4.8 (07.01.2019) уменьшено время ожидания ответа от сервисов определения местоположения
1.4.7 (16.07.2018) Гео-запрос не производится, если страницу открывает бот
1.4.5 (05.07.2018) Добавлена возможность указать желаемый язык ответа, пока работает только для службы Sypex
Служба FreeGeoIp отключена, т.к. они закрыли свободный api
1.4.4 (24.05.2018) В компонент определения местоположения пользователей добавлена проверка наличия модуля "Веб-аналитика"
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

Задать максимальное время ожидания ответа от geoip-сервиса можно через РНР-командную строку. Значение указывается в миллисекундах:
\Bitrix\Main\Config\Option::set('rover.geoip', 'curl-timeout', 200);

Указание сервера для Sypex
\Bitrix\Main\Config\Option::set('rover.geoip', 'sypex-server', 'ru3.sxgeo.city');
Список всех серверов https://sypexgeo.net/ru/api/


Указание ключа доступа для Sypex
\Bitrix\Main\Config\Option::set('rover.geoip', 'sypex-key', 'abcd1');

Требования
  • PHP версии 8.1 или выше (совместимость дополнительно проверена на PHP 8.2)
  • установленная на хостинге библиотека CURL
  • модуль «Веб-аналитика» (для работы компонента rover:geoip.user.location)
Поддержка
По всем вопросам, предложениям и ошибкам обращайтесь в нашу техподдержку.

Наш сайт — https://rover-it.me

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

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

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