GeoIP: определение страны и города пользователя

GeoIP: определение страны и города пользователя
2 000 ₽ Демо
От 50 до 100 установок.

Дополнительные опции

интегрируем любой сервис
час
Приобрести и затем установить модуль вы можете через раздел «Магазин приложений» в центре администрирования HostCMS.

Модуль позволяет определить местоположение посетителя (геолокация) по IP-адресу и получить информацию – страну, регион, город и др.

В модуль входят следующие сервисы для определения:

IP-API (API)

https://ip-api.com/

Страны: Все

Запрос в реальном времени, есть регистрация (платный (€13.3 в месяц) и бесплатный тариф (45 запросов в минуту)), без регистрации

IpBase (API)

https://ipbase.com/

Страны: Все

Запрос в реальном времени, есть регистрация (платный ($9.99 в месяц) и бесплатный тариф (150 запросов в месяц))

MaxMind (API, local DB)

https://www.maxmind.com/

Страны: Все

Есть платный (запрос в реальном времени, нужна регистрация) и бесплатный тариф (запрос через базу на сервере, нужна регистрация для получения ключа, для обновления базы используйте CRON задачу, файл cron есть в модуле)

/**
 * Запуск действий по расписанию, рекомендуется запускать раз в неделю
 *
 * Пример вызова:
 * 22 22 * * 3 /usr/bin/php /var/www/site.ru/www/cron/maxmind.php
 * Пример вызова с передачей php.ini
 * 22 22 * * 3 /usr/bin/php --php-ini /etc/php.ini /var/www/site.ru/www/cron/maxmind.php
 * Реальный путь на сервере к корневой директории сайта уточните в службе поддержки хостинга.
 */

* при первом запуске - запустите CRON задачу вручную для скачивания файла базы

DaData (API)

https://dadata.ru

Страны: Россия

Есть платный и бесплатный тариф (запрос в реальном времени, нужна регистрация)

Яндекс Геокодер (API)

https://yandex.ru/map-constructor/location-tool/

Страны: Все

Есть платный (запрос в реальном времени, нужен API ключ) и бесплатный тариф (запрос в реальном времени, нужен API ключ / возможно без него)

Работает только с координатами и Geolocation API web браузера (если пользователь согласится предоставить свое местоположение)

$oGeoData = GeoIp_Controller::instance('yandex')->execute('60.6084,56.8497');

Google Геокодер (API)

https://developers-dot-devsite-v2-prod.appspot.com/maps/documentation/utils/geocoder/embed?hl=ru

Страны: Все

Есть платный (запрос в реальном времени, нужен API ключ) и бесплатный тариф (запрос в реальном времени, нужен API ключ)

Работает только с координатами и Geolocation API web браузера (если пользователь согласится предоставить свое местоположение)

$oGeoData = GeoIp_Controller::instance('google')->execute('60.6084,56.8497');

GeoIP (local DB)

https://www.php.net/manual/ru/book.geoip.php

Страны: Все

Не рекомендуемый вариант. Запрос через базу на сервере, нужно доступное расширение extension = geoip.so на хостинге

Sypex Geo (API, local DB)

https://sypexgeo.net/

Страны: Все

Есть платный (запрос в реальном времени, нужна регистрация) и бесплатный тариф (запрос в реальном времени, можно с регистрацией или без или работа через базу на сервере, для обновления базы используйте CRON задачу, файл cron есть в модуле)

Проблемы с доступности local DB, работает только API
/**
 * Запуск действий по расписанию, рекомендуется запускать раз в неделю
 *
 * Пример вызова:
 * 22 22 * * 3 /usr/bin/php /var/www/site.ru/www/cron/sypexgeo.php
 * Пример вызова с передачей php.ini
 * 22 22 * * 3 /usr/bin/php --php-ini /etc/php.ini /var/www/site.ru/www/cron/sypexgeo.php
 * Реальный путь на сервере к корневой директории сайта уточните в службе поддержки хостинга.
 */

* при первом запуске - запустите CRON задачу вручную для скачивания файла базы

Есть возможность указать адрес сервера API. Сервера расположены в разных странах и городах. Благодаря чему можно значительно уменьшить пинг (ping) до сервера, а соответственно и время доступа к API. В данный момент доступны 14 серверов.

IpGeoBase (local DB)

http://ipgeobase.ru/

Страны: Россия, Украина

Запрос в реальном времени, без регистрации полностью бесплатно

Сервис больше не существует и не поддерживается!

Вывод данных на странице

Данные которые можно получить и вывести в макете, ТДС или php скрипте (с драйвером по умолчанию ipgeobase, настраивается в файле конфига /modules/geoip/config/driver.php)

$oGeoData = GeoIp_Controller::instance()->execute();

с определенным драйвером

$oGeoData = GeoIp_Controller::instance('maxmind')->execute();
  • ip - текущий IP адрес
  • city - наименование города
  • region - наименование области
  • district - наименование округа (не у всех сервисов)
  • country - наименование страны
  • country_iso - ISO код страны
  • shop_country_id - id объекта HostCMS страны
  • shop_country_location_id - id объекта HostCMS области
  • shop_country_location_city_id - id объекта HostCMS города
  • postcode - почтовый индекс (MegaPost, не у всех сервисов)
  • isp - провайдер (не у всех сервисов)
  • lat - широта
  • lng - долгота
  • fias - ФИАС (DaData)
  • kladr - КЛАДР (MegaPost, DaData)
  • host - доменное имя хоста
  • useragent - user agent
  • device - устройство (для версии 6.9.3 и выше)
  • browser - браузер (для версии 6.9.3 и выше)
  • os - опреационная система (для версии 6.9.3 и выше)
$oGeoData = GeoIp_Controller::instance()->execute();

if($oGeoData)
{
	echo 'Ваша страна: ' . Core_Array::get($oGeoData, 'country', $oGeoData['country_iso']) . '<br />';
	echo 'Ваша область: ' . Core_Array::get($oGeoData, 'region') . '<br />';
	echo 'Ваш город: ' . Core_Array::get($oGeoData, 'city');
}

Данный модуль может работать с модулем "Кэширование" (редакция "Бизнес"), что значительно ускоряет определение и вывод информации или при недоступности сайта сервиса, уменьшает использование лимитов сервиса

На сайт "ходят" не только обычные посетители, но и поисковые боты, которые могут создавать много запросов к сайту и соответственно к сервису, для таких случаев модуль фильтрует запросы от поисковых ботов.

Любая local DB работает во много раз быстрее API (можно посмотреть на онлайн-демо) и не требует модуля "Кэширование", но требует знаний работы с CRON и сервером
Техническая поддержка/консультация и гарантированный доступ к обновлениям осуществляется в течение 6 месяцев со дня оплаты.

Вопросы (перед покупкой), предложения и поддержка/консультация (после покупки, нужна - версия модуля и HostCMS, адрес сайта, ключ модуля при покупке или номер лицензии HostCMS, дата приобретения модуля):

  • telegram: @morozovpimnev (высокое время ответа при поддержке)
  • whatsapp: +79122442150 (среднее время ответа при поддержке)
  • Онлайн чат: jivo.chat (низкое время ответа при поддержке)

Вопросы (перед покупкой) и предложения:

  • Email: vasb@zbebmbicvzari.eh (поддержка не осуществляется)
  • Телефон: +7 (343) 288-299-8 (поддержка не осуществляется)

Подписаться на наш канал: t.me/morozovpimnev_n

Версии модуля

Версия Дата Описание Версия от Версия до
2.4 22.02.2024 small fix 7.0.7
2.3 01.08.2023 добавлена поддержка PHP >= 8 накопительное обновление и оптимизация 7.0.0
2.2 06.09.2022 Добавлен драйвер IpWhois 6.9.5
2.1 05.05.2022 Добавлен драйвер IpBase 6.5.4
2.0 29.09.2021

улучшена совместимость с модулями "Улучшенный выбор города" и "MegaPost"

Для драйвера ipGeoBase добавлена возможность работы через локальную базу на сервере (сервис больше не поддерживается и обновляется)

bug fix

6.5.4
Еще версии
Похожие