Установка (заменить адрес сайта на нужный):
В местоположение входят:
- название города;
- название страны на языке сайта;
- iso-код страны
- id страны в CMS 1С Битрикс (соответствуют id стран, возвращаемых функцией GetCountryArray)
- название региона;
- iso-код региона (опционально);
- название района (опционально);
- ширина и долгота;
- диапазон ip-адресов (опционально).
В обычном режиме решение предоставляет данные из первой службы, корректно вернувшей данные. Службы вызываются в следующем порядке:
- sypexgeo.net (Sypex);
- ipgeobase.ru (IpGeoBase); (отключена, т.к. перестала отвечать)
- freegeoip.net (FreeGeoIp). (отключена, т.к. свободный api был закрыт)
Пример использования:
| use Bitrix\Main\Loader, Rover\GeoIp\Location; if (Loader::includeModule('rover.geoip')){ try{ echo 'ваш ip: ' . Location::getCurIp() . ' '; // текущий ip $location = Location::getInstance('5.255.255.88'); // yandex.ru if ($location->isSuccess()){ echo 'ip: ' . $location->getIp() . ' '; // 5.255.255.88 echo 'город: ' . $location->getCityName() . ' '; // Москва echo 'iso-код страны: ' . $location->getCountryCode() . ' '; // RU echo 'название страны: ' . $location->getCountryName() . ' '; // Россия echo 'id страны в Битриксе: ' . $location->getCountryId() . ' '; // 1 echo 'регион: ' . $location->getRegionName() . ' '; // Москва echo 'iso-код региона: ' . $location->getRegionCode() . ' '; // echo 'округ: ' . $location->getDistrict() . ' '; // Центральный федеральный округ echo 'широта: ' . $location->getLat() . ' '; // 55.755787 echo 'долгота: ' . $location->getLng() . ' '; // 37.617634 echo 'диапазон адресов: ' . $location->getInetnum() . ' '; // 5.255.252.0 - 5.255.255.255 echo 'сервис: ' . $location->getService() . ' '; // IpGeoBase } else { echo 'ошибка: ' . $location->getError() . ' '; } $location->setLanguage('en'); $location->reload('173.194.222.94'); // google.ru if ($location->isSuccess()){ echo 'ip: ' . $location->getIp() . ' '; // 173.194.222.94 echo 'город: ' . $location->getCityName() . ' '; // Mountain View echo 'iso-код страны: ' . $location->getCountryCode() . ' '; // US echo 'название страны: ' . $location->getCountryName() . ' '; // USA echo 'id страны в Битриксе: ' . $location->getCountryId() . ' '; // 122 echo 'регион: ' . $location->getRegionName() . ' '; // California echo 'iso-код региона: ' . $location->getRegionCode() . ' '; // US-CA echo 'округ: ' . $location->getDistrict() . ' '; // echo 'широта: ' . $location->getLat() . ' '; // 37.38605 echo 'долгота: ' . $location->getLng() . ' '; // -122.08385 echo 'диапазон адресов: ' . $location->getInetnum() . ' '; // echo 'сервис: ' . $location->getService() . ' '; // Sypex } else { echo 'ошибка: ' . $location->getError() . ' '; } } catch (\Exception $e) { echo $e->getMessage(); } } else echo 'Модуль GeoIp Api не установлен'; |
Указание сервера для Sypex
| \Bitrix\Main\Config\Option::set('rover.geoip', 'sypex-server', 'ru3.sxgeo.city'); |
Указание ключа доступа для Sypex
\Bitrix\Main\Config\Option::set('rover.geoip', 'sypex-key', 'abcd1');
Компоненты
Указатель местоположения пользователей (rover:geoip.user.location)
Позволяет установить местоположение для пользователей на основе данных из модуля. Местоположение определяется по ip-адресу, с которого они впервые зашли на сайт.
Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoip
| Если вам нужен более расширенный функционал и более «пользовательский» интерфейс с похожим функционалом, рекомендую решение «Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города». |
— исправлены найденные уязвимости
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 сделан публичным
Оплатить готовые сайты, шаблоны на 1С-Битрикс, лицензии, услуги внедрения и доработки вы можете любым удобным способом из нижеперечисленных:
- Банковские карты
- Кошелёк ЮMoney
- SberPay
- Покупка в рассрочку 0% на 10 месяцев от СберБанка
- Покупка в кредит от СберБанка
- Оплата в терминалах и кассах
- Безналичный расчёт
Купленные программные продукты поставляются в виде цифро-буквенного кода, используя который их можно установить на хостинг. Код отправляется онлайн на указанную в заказе электронную почту.
После получения оплаты от покупателя до момента отправки ему лицензионного ключа может пройти несколько часов.
На протяжении этого времени проводится оформление купленной программной продукции.
Для установки вам потребуется
- Лицензия «1С-Битрикс» (подходящей редакции);
- домен;
- хостинг.
Все это вы можете купить в готовом наборе у нас на сайте, ускорив процесс дальнейшей установки.
Базовую установку мы сделаем для вас бесплатно!
В нашем маркетплейсе продаются только лицензионные программные продукты. Программные продукты поставляются «как есть». При этом, если в процессе использования продукта возникают ошибки, сбои или иные функциональные несоответствия и недостатки, они устраняются в рамках оказания технической поддержки.
Продажа программной продукции существенно отличается от продажи любых других товаров или услуг. В силу технических особенностей поставки программных продуктов «1C-Битрикс», а также готовых решений по «1C-Битрикс: Маркетплейс» (далее - продукт), возврат приобретенных экземпляров продуктов / решений невозможен.
В случае ошибочного проведения платежа ДО момента отправки лицензионного ключа на ваш e-mail, денежные средства могут быть вам возвращены. Возврат осуществляется по заявлению от покупателя тем же платежным способом, которым они были получены. Комиссия и налоги за проведение операции по возврату, если таковые взимаются, проводится за счет покупателя.





