Обнаружение IP-адресов с геолокацией

Описание

Предоставляет географическую информацию, определяемую по IP-адресу. Ее можно использовать в темах или других плагинах, в качестве шорткода или через классы CSS body. Названия городов и стран переводятся на разные языки(поддерживаемые языки).

Возможности:

  • You can use one of these data sources (see comparison):
  • Provides these 5 functions (see API Documentation):
    • geoip_detect2_get_info_from_ip($ip, $locales = array('en'), $options = array()): Lookup Geo-Information of the specified IP
    • geoip_detect2_get_info_from_current_ip($locales = array('en'), $options = array()): Поиск геоинформации о текущем пользователе сайта
    • geoip_detect2_get_current_source_description(...): Возвращает человекочитаемую метку текущего выбранного источника.
    • geoip_detect2_get_external_ip_adress(): Получение интернет-адреса веб-сервера
    • geoip_detect2_get_client_ip(): Получение IP-адреса клиента (даже если он находится за обратным прокси)
  • Что касается имен свойств, посмотрите результаты для определенного IP в бекенде wordpress (в разделе Инструменты > Определение IP геолокации).
  • Вы можете включить эти свойства в свои посты и страницы с помощью шорткода [geoip_detect2 property="country.name" default="(country could not be detected)" lang="en"] (где ‘country.name’ может быть одним из других имен свойств, а ‘default’ и ‘lang’ необязательны).
  • Вы можете показывать или скрывать содержимое с помощью шорткода [geoip_detect2_show_if country="FR, DE" not_city="Berlin"]TEXT[/geoip_detect2_show_if]. См. документацию по шорткодам.
  • При включении на странице параметров он добавляет в тег body такие CSS-классы, как geoip-province-HE, geoip-country-DE и geoip-continent-EU.
  • Если вы используете кэш страниц, рекомендуется использовать режим AJAX (см. AJAX)
  • Если эта опция включена на странице параметров, IP-адрес клиента использует обратный прокси-сервер.
  • If you are using Contact Form 7, you can use these shortcodes:
    • A select input with all countries, the detected country being selected by default: [geoip_detect2_countries mycountry]
    • Текстовый ввод, который предварительно заполняется обнаруженным городом (или другим свойством): [geoip_detect2_text_input city property:city lang:fr id:id class:class default:Paris]
    • Информация о геолокации для текста сообщения электронной почты: [geoip_detect2_user_info]
  • If you are using WP Forms, you can use this shortcode:
    • Информация о геолокации для текста сообщения электронной почты: [geoip_detect2_user_info]
  • Вместе с SVG Flags вы можете показать флаг обнаруженной страны: [geoip_detect2_current_flag] (см. документацию)

Дополнительную информацию см. в разделе Документация.

Как использовать эти функции?

  • Вы можете выбрать валюту магазина в зависимости от названия страны
  • Вы можете предварительно заполнить страну доставки
  • Вы можете показать ближайший к клиенту магазин
  • Вы показываете или скрываете контент, предназначенный для географической целевой группы
  • И т.д. … Расскажите мне! Мне очень интересно, что вы будете делать с этим плагином!
  • Будьте внимательны к соблюдению действующего законодательства. Например, Регламент (ЕС) 2018/302 …
  • Если вам нужно узнать часовой пояс пользователя, то точнее будет использовать JS-решения.

Системные требования: Вам понадобится как минимум PHP 7.2.5 . Также, если вы используете плагин WooCommerce, вам понадобится версия не ниже WooCommerce 3.9.0 .

GDPR: См. раздел Соответствует ли этот плагин требованиям GDPR?

Это расширение является «благотворительным». Если вы довольны им, пожалуйста, оставьте чаевые в пользу этой благотворительной организации. (См. FAQ для получения дополнительной информации)

Вот другие способы внести свой вклад в разработку этого плагина.

Этот продукт может предоставлять данные GeoLite2, созданные MaxMind, доступные на сайте http://www.maxmind.com.

Устранение ошибок

  • Возвращает ли функция geoip_detect2_get_info_from_current_ip() одну и ту же страну, независимо от того, откуда вы заходите на сайт?
  • Возможно, на вашем сервере настроен обратный прокси. Вы можете проверить это: Перейдите на страницу параметров и найдите «обратный прокси». Указаны ли там 2 IP-адреса? Если да, то какой из них соответствует вашему публичному IP?
  • Или, возможно, вы используете плагин кэширования сайта. Тогда включите опцию Отключить кэширование страницы, содержащей шорткод или API-вызов геозависимых функций.

Другие советы по устранению неполадок

Скриншоты

  • Страница поиска (в разделе Инструменты > Поиск геолокации)
  • Страница «Параметры» (в разделе «Настройки > Определение IP-адреса геолокации»)

Установка

  • Установите плагин
  • Перейдите на страницу настроек плагина и выберите источник данных.
  • Проверьте его, нажав на кнопку «Lookup» на странице поиска.

Часто задаваемые вопросы

Технически говоря, как я могу проверить, приехал ли мой посетитель из Германии?

Как показать текст только в том случае, если посетитель пришел из Германии?

Как добавить название текущей страны в качестве текста на страницу?

Какой источник данных выбрать?

Можно ли изменить период времени, в течение которого данные будут кэшироваться?

Базы данных Maxmind Lite ограничены EULA. Могу ли я разместить форму, в которой пользователи могут просматривать географическую информацию об IP-адресе?

Работает ли этот плагин в многосайтовой сети?

Соответствует ли этот плагин требованиям GDPR?

Что означает «Исключения из конфиденциальности»?

Что вы имеете в виду, говоря «Этот плагин является благотворительным»?

Дополнительная документация

Функции PHP

Функции JS для режима AJAX

Шорткоды

Шорткоды для Contact Form 7

Свойства записи

Примеры использования API

Отзывы

05.01.2024
This is the only geolocation plugin I’ve ever needed. Thanks for creating and maintaining this plugin!
21.12.2023 1 ответ
Really well written plugin that does exactly what it promises, includes well written documentation. To those who wrote negative reviews about detection that is not the author’s fault, he links you to several providers that issue that data, you literally could not ask for more.
19.11.2023
Looked at a few geolocation plugins to show country specific content.. this plugin works where others don’t. Worth a Maxmind account though — super accurate, and super cheap.. almost free. Thanks for creating this Benjamin
02.11.2023 1 ответ
I couldn’t find city shortcode. You should have a full list of possible shortcodes. I used [geoip_detect2 property=»country»] to display country and it displayed CANADA. I am in South of USA
Посмотреть все 59 отзывов

Участники и разработчики

«Обнаружение IP-адресов с геолокацией» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Обнаружение IP-адресов с геолокацией» переведён на 3 языка. Благодарим переводчиков за их работу.

Перевести «Обнаружение IP-адресов с геолокацией» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

5.5.0

  • FIX [!]: In the datasource «hostip.info», the region code (i.e. CA) is now correctly moved to the property mostSpecificSubdivision (previously, it was part of the property city)
  • Обновления в библиотеке

5.4.1

  • NEW: JS now emit events ‘geoip-detect-shortcodes-done’ and ‘geoip-detect-body-classes-done’, see https://github.com/yellowtree/geoip-detect/wiki/API:-AJAX#events
  • FIX: Remove Fatal Error in check_requirements («Undefined constand GEOIP_DETECT_DEBUG»)

5.4.0

  • NEW: Infos can be added to a mail sent by WPForms (with Smart Tag {geoip_detect2_user_info})
  • FIX: Remove Fatal Error on uninstall («Undefined constand GEOIP_DETECT_DEBUG»)
  • Обновления в библиотеке

5.3.2

  • ИСПРАВЛЕНО: Некоторые коды стран, такие как «PT», отсутствовали в (устаревшем) отображении устаревшего API.
  • ИСПРАВЛЕНО: Совместимость с Maxmind больше не показывает уведомление, когда папка плагина нестандартна (например, из-за симлинков) или имя файла заканчивается на Reader.php
  • Обновления в библиотеке

5.3.1

  • ИСПРАВЛЕНО: Уважать вариант файла JS
  • UI: Показывать выбранный вариант файла в опциях бэкенда
  • Обновления в библиотеке

5.3.0

  • НОВОЕ: Теперь можно указать вариант JS-файла, если вы используете только часть функций (см. https://github.com/yellowtree/geoip-detect/wiki/API:-AJAX#js-variants)
  • Примечание[!]: frontend.js теперь переименован в frontend_full.js
  • Обновления в библиотеке

5.2.2

  • ИСПРАВЛЕНО: Формат новых лицензионных ключей Maxmind изменился. (Существующие лицензионные ключи продолжают работать)
    (5.2.1 был нерабочим релизом)

5.2.0

  • НОВОЕ: Список обратных прокси-серверов AWS CloudFront или CloudFlare теперь можно добавить в качестве «известного прокси»
  • ИСПРАВЛЕНО [!]: Имя заголовка AWS Cloudfront изменено на HTTP_CLOUDFRONT_VIEWER_COUNTRY
  • Уменьшение размера JS (режим AJAX)
  • Обновления в библиотеке

5.1.1

  • НОВОЕ: Для конфигурации обратного прокси внутренние адреса (например, 10.0.0.0/8) теперь по умолчанию заносятся в белый список. Вы можете отменить это поведение, используя фильтр wordpress geoip_detect2_client_ip_whitelist_internal_ips.
  • НОВОЕ: Классы тел теперь включают название города на английском языке (например, geoip-city-Munich)
  • ИСПРАВЛЕНО: В некоторых конфигурациях сервера появлялось это предупреждение: Использование неопределенной константы CURL_HTTP_VERSION_2_0

5.1.0

Новый источник данных: Fastah Web API (бета-версия), см. https://aws.amazon.com/marketplace/pp/prodview-k5gjowexrefl2

Режим AJAX:
* НОВОЕ: JS-функция geoip_detect.set_override_with_merge может изменять запись переопределения в одном свойстве, объединяя ее с текущим сохраненным свойством

Другие незначительные изменения:
* ИСПРАВЛЕНО: В режиме без AJAX свойства, такие как «extra.original.zip», могут быть доступны снова
* ИСПРАВЛЕНО: Автоматическая загрузка базы данных Maxmind теперь работает и в том случае, если временная папка доступна для групповой/мировой записи (как в конфигурациях AWS)
* Если вы хотите включить больше предупреждений (например, при отладке), вы можете добавить define('GEOIP_DETECT_DEBUG', true) в ваш wp-config.php или около того.
* Обновления библиотеки

5.0.0

В этом выпуске есть небольшие изменения, отмеченные [!].

Режим AJAX:
* ИСПРАВЛЕНО [!]: Пустые значения атрибутов, такие как [geoip_detect2_show_if country=""]Страна не обнаружена[/geoip_detect2_show_if], теперь работают (раньше они игнорировались)
* ИСПРАВЛЕНО [!]: Шорткоды, имеющие недопустимое значение свойства ajax (например, [geoip_detect2_text_input ajax="invalid"]), теперь используют опцию AJAX вместо того, чтобы всегда отключать AJAX
* ИСПРАВЛЕНО: В CF7 селектор страны теперь можно использовать в режиме AJAX
* ИСПРАВЛЕНО: В режиме AJAX шорткод [geoip_detect2_show_if] отображается как <div>, если он обнаруживает, что в содержащемся контенте есть элементы уровня HTML-блока
* НОВОЕ (бета-версия): В режиме AJAX новое свойство autosave сохраняет пользовательский ввод как локальное переопределение для этого браузера. [geoip_detect2_countries mycountry autosave] и [geoip_detect2_text_input city property:city autosave]. (Пожалуйста, дайте обратную связь, если это работает так, как ожидалось!)
* ИСПРАВЛЕНО: В режиме AJAX вызов метода set_override(record, duration_in_days) теперь обновляет шорткоды AJAX и классы CSS body.
-> Таким образом, теперь можно быстро реализовать различный контент для разных стран с автоопределением страны по умолчанию, см. https://github.com/yellowtree/geoip-detect/wiki/API-Usage-Examples#country-selector-that-can-be-overridden-by-the-user

Другие изменения:
* НОВОЕ: Значительное повышение производительности, если поиск выполняется для текущего IP более одного раза (например, из-за шорткодов без режима AJAX)
* UI: Отображение времени для последующего поиска на странице Test Lookup
* ИСПРАВЛЕНО: Maxmind Datasource: Проверка, действительно ли файл базы данных является файлом, а не директорией
* НОВОЕ: Источник данных Header: Теперь пользовательский HTTP-заголовок может быть использован через фильтр wordpress geoip_detect2_source_header_http_key

Другие мелкие изменения:
* Обновление списка доступных API для получения внешнего IP (так как whatismyip не работает)
* Минимальная версия WordPress теперь 5.4.
* Обновление некоторых внутренних библиотек & инструментов разработчика
* Проверена совместимость с PHP 8.1

Код плагина практически не изменился, я назвал эту версию 3.0, чтобы обозначить основные изменения со стороны Maxmind. Они объясняют это в этой записи в блоге:
https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/

Старый журнал изменений