Корзина
0
Скриншоты
Описание
Технические данные
- Опубликовано:
- 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)
Авторизуйтесь , чтобы оставить отзыв или задать вопрос разработчику.
21 августа 2023 10:42
7 сентября 2023 18:42
21 августа 2023 10:41
18 августа 2023 12:03
18 августа 2023 15:15
16 февраля 2023 10:33
27 февраля 2023 07:56
3 марта 2022 21:44
4 марта 2022 10:11
Что нового
| 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-сервиса можно через РНР-командную строку. Значение указывается в миллисекундах:
Указание сервера для Sypex
Список всех серверов https://sypexgeo.net/ru/api/
Указание ключа доступа для Sypex
Требования
С 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'); |
Указание ключа доступа для 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
Наш сайт — https://rover-it.me