> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/guide/nastroiki/obshie-nastroiki/geoip.md).

# GeoIP

GeoIP определяет приблизительное местоположение посетителя по его IP-адресу. Система поддерживает локальные базы и внешние сервисы, последовательное переключение между провайдерами, объединение результатов, кеширование, временную остановку сбойных источников, обновление локальных баз и безопасную диагностику.

В зависимости от выбранного провайдера результат может содержать страну, регион, район, город, почтовый индекс, координаты, часовой пояс, сеть и ASN. ASN — номер автономной сети, по которому можно определить оператора или владельца сети.

{% hint style="info" %}
GeoIP определяет предполагаемое местоположение подключения, а не точный физический адрес человека. Полнота и точность результата зависят от провайдера и актуальности его данных.
{% endhint %}

## Где находится раздел

### Путь в панели управления

**«Настройки» — «Общие настройки» — «Дополнительно» — «GeoIP»**

<figure><img src="https://1156649716-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYuqSN6CIJoIeh8EPb0uE%2Fuploads%2Fgit-blob-b7936fcfe95e2044fe04fd7952fdfe5f450dc6f1%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## Права доступа

{% stepper %}
{% step %}

### Необходимое право

Для открытия и изменения раздела требуется отдельное право **«Настройки GeoIP»**.

Описание права: «Разрешает менять настройки геолокации и GeoIP-баз».

Общее право управления настройками не открывает GeoIP автоматически. Без отдельного права пункт **«GeoIP»** скрывается, а прямой запрос к разделу отклоняется.
{% endstep %}

{% step %}

### Как выдать право

Откройте: **«Пользователи» — «Список групп пользователей»**

1. Откройте нужную группу через действие **«Изменить»**.
2. Выберите группу прав **«Настройки»**.
3. Найдите и включите право **«Настройки GeoIP»**.
4. Нажмите **«Сохранить изменения»**.
   {% endstep %}
   {% endstepper %}

***

## Как работает GeoIP

{% stepper %}
{% step %}

### Последовательность определения местоположения

1. Система проверяет общий переключатель GeoIP.
2. Определяет IP-адрес посетителя выбранным способом.
3. При необходимости пропускает частные и зарезервированные IP-адреса.
4. Проверяет быстрый кеш и основное хранилище кеша.
5. При включённом режиме только чтения прекращает обработку, если готового результата в кеше нет.
6. Выбирает доступных провайдеров в соответствии со стратегией и заданным порядком.
7. При необходимости переключается между провайдерами или объединяет их ответы.
8. Нормализует найденные данные.
9. Сохраняет найденный или пустой результат в кеше.
10. Передаёт результат заявкам, ограничениям направлений, журналу авторизаций, уведомлениям и аналитике.

Результат из кеша используется до проверки временной паузы провайдера. Поэтому уже сохранённые сведения могут продолжать работать, даже если источник временно отключён после ошибок.
{% endstep %}

{% step %}

### Язык названий

Названия стран, регионов и городов используют язык сайта. Отдельного выбора языка на странице GeoIP нет.

Если провайдер не содержит название на основном языке сайта, система использует доступный резервный вариант.
{% endstep %}

{% step %}

### Пустой результат и ошибка

Пустой результат означает, что местоположение определить не удалось, но сама операция могла завершиться без технической ошибки.

Пустой результат возможен, если:

* GeoIP полностью выключен;
* IP-адрес был пропущен;
* включён режим только чтения кеша, а сохранённого результата нет;
* нет подходящего включённого провайдера;
* провайдеры не поддерживают требуемый тип определения;
* провайдер вернул ответ без полезных географических полей;
* выбран режим продолжения работы после ошибки.

Режим реакции на ошибку применяется, когда вызванный провайдер завершил запрос ошибкой и цепочка не получила полезного результата.
{% endstep %}
{% endstepper %}

***

## Вкладка «Основное»

### Работа GeoIP

| Настройка                                    | Назначение                                                                                                                         |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **«Определять страну и город по IP»**        | Главный переключатель GeoIP. Если выключить, система перестанет определять местоположение во всех связанных разделах.              |
| **«Проверять и дополнять найденные данные»** | Нормализует полученные названия и добавляет доступные безопасные сведения. Это не заменяет объединение ответов разных провайдеров. |
| **«Ускорять обработку списков IP»**          | Разрешает групповую обработку нескольких IP-адресов. Одиночные определения продолжают работать независимо от этой настройки.       |
| **«Временно не обращаться к провайдерам»**   | Использует только ранее сохранённые результаты. Для новых IP-адресов местоположение не определяется.                               |
| **«Показывать подробности при проверке»**    | Добавляет к результату безопасные сведения о выполненной проверке. Секреты и внутренние пути в них не включаются.                  |

{% hint style="warning" %}
При включённой настройке **«Временно не обращаться к провайдерам»** новый IP-адрес получит пустой результат. Если основное кеширование выключено или политика запрещает хранение, готовые результаты также не будут найдены.
{% endhint %}

### Если местоположение не удалось определить

Доступны три режима:

| Значение                                     | Поведение                                                                                            |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **«Продолжить без данных о местоположении»** | Возвращает пустой результат. Повторяющееся предупреждение может быть ограничено настройками журнала. |
| **«Продолжить и записать ошибку в журнал»**  | Передаёт ошибку в систему журналирования и продолжает работу с пустым результатом.                   |
| **«Остановить операцию с ошибкой»**          | Передаёт ошибку разделу, который запросил GeoIP. Итоговое действие зависит от правил этого раздела.  |

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

### Как определять IP посетителя

| Значение                                     | Поведение                                                                                                                                           |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **«Учитывать доверенные прокси»**            | Использует IP, определённый приложением с учётом настроенных доверенных прокси. Подходит для обычной работы за прокси-сервером или балансировщиком. |
| **«Использовать только прямое подключение»** | Использует адрес непосредственного подключения к серверу. Применяется только при специальной схеме размещения.                                      |

### Пропуск специальных адресов

**«Пропускать частные IP»** запрещает отправлять провайдерам адреса внутренних сетей.

**«Пропускать зарезервированные IP»** исключает технические и служебные диапазоны, которые не принадлежат обычным посетителям.

Пропущенный IP возвращает пустое местоположение и не передаётся провайдерам.

## Вкладка «Провайдеры»

Провайдер — это источник данных, который определяет местоположение по IP-адресу.

Система поддерживает четыре встроенных провайдера.

### Локальные провайдеры

Локальные провайдеры используют базы, установленные на сервере. Обычные GeoIP-проверки не передают IP-адрес внешнему сервису.

#### MaxMind GeoLite2

MaxMind GeoLite2 может использовать несколько видов локальных баз:

* база City — полная геолокация, включая страну, регион и город;
* база Country — определение страны;
* база ASN — определение автономной сети и её оператора.

Карточка **«Готовность к работе»** показывает:

* **«База доступна»** — найдена хотя бы одна читаемая совместимая база;
* **«База не установлена»** — совместимые данные не найдены или недоступны для чтения.

Доступные виды проверки зависят от фактически установленных баз.

Поля **«Account ID»** и **«Лицензионный ключ»** используются для скачивания и обновления GeoLite2. Если готовые базы уже установлены на сервере, обычное определение местоположения может работать без этих данных.

**«Account ID»** должен содержать только цифры и не может быть длиннее 64 символов.

#### DB-IP Lite

DB-IP Lite использует локальную бесплатную базу City Lite и определяет страну и город. Определение ASN этим провайдером не поддерживается.

Перед включением провайдера или его автоматического обновления необходимо подтвердить настройку **«Подтвердить атрибуцию DB-IP»**.

{% hint style="warning" %}
Подтверждайте атрибуцию только после размещения на сайте видимой ссылки [IP Geolocation by DB-IP](https://db-ip.com), как требуют условия бесплатной базы DB-IP Lite и лицензии CC BY 4.0.
{% endhint %}

### Внешние провайдеры

Внешние провайдеры выполняют запрос через интернет. Для их работы нужен сохранённый API-ключ.

#### IPLocate.io

IPLocate.io определяет местоположение через внешний сервис и поддерживает:

* полную геолокацию;
* определение страны;
* определение ASN.

Перед включением провайдера сохраните **«API-ключ»** в разделе **«Доступ к IPLocate.io»**.

#### IP2Location.io

IP2Location.io определяет страну, регион, город и ASN через внешний сервис.

Перед включением провайдера сохраните **«API-ключ»** в разделе **«Доступ к IP2Location.io»**.

{% hint style="warning" %}
При использовании IPLocate.io или IP2Location.io проверяемый публичный IP-адрес передаётся внешнему сервису. Учитывайте его правила обработки данных и ограничения количества запросов.
{% endhint %}

### Управление данными доступа

Для MaxMind, IPLocate.io и IP2Location.io отображается один из статусов:

* **«Данные сохранены»**;
* **«Данные не сохранены»**.

Кнопка **«Настроить доступ»** открывает форму первичного ввода. Кнопка **«Изменить данные»** открывает форму изменения сохранённых данных.

В форме используются поля:

* **«Account ID»** и **«Лицензионный ключ»** для MaxMind;
* **«API-ключ»** для IPLocate.io;
* **«API-ключ»** для IP2Location.io.

Лицензионные и API-ключи могут содержать до 1 024 символов.

После сохранения секретный ключ больше не показывается. При изменении MaxMind пустое поле нового лицензионного ключа сохраняет действующий ключ.

Для удаления используется отдельное действие **«Удалить секрет»** и подтверждение **«Удалить сохранённый секрет?»**.

Удаление не выполняется, если:

* внешний провайдер всё ещё включён;
* удаляется лицензионный ключ MaxMind при действующем автообновлении MaxMind.

Сначала отключите зависимую настройку кнопкой **«Сохранить»**, затем удалите секрет.

### Включение провайдера

Переключатель **«Включить провайдера»** разрешает использовать источник в основной цепочке GeoIP.

Изменение переключателя применяется только после нажатия общей кнопки **«Сохранить»**.

Внешний провайдер нельзя включить без предварительно сохранённого API-ключа.

Локальный провайдер можно включить без установленной базы, но до появления читаемых данных он будет пропускаться как недоступный.

Статус **«База доступна»** не означает, что провайдер включён. Для участия в основной обработке должны одновременно выполняться условия:

* провайдер включён;
* сохранены обязательные данные доступа;
* локальная база доступна или внешний сервис настроен;
* провайдер поддерживает требуемый вид определения;
* для провайдера не действует временная пауза.

### Проверка провайдеров

В блоке **«Проверка провайдеров»** доступны:

* **«Публичный IP-адрес»**;
* **«Тип определения»**;
* отдельная кнопка **«Проверить»** для каждого провайдера.

Варианты типа определения:

* **«Полная геолокация»**;
* **«Страна»**;
* **«ASN»**.

Кнопка проверки недоступна, если провайдер не поддерживает выбранный тип или необходимые данные ещё не установлены.

Проверка обращается непосредственно к выбранному провайдеру. Она не использует:

* общий переключатель GeoIP;
* настройку **«Включить провайдера»**;
* порядок и стратегию провайдеров;
* переключение и объединение результатов;
* кеш GeoIP;
* режим только чтения кеша;
* временную паузу провайдера.

Поэтому отдельная проверка может пройти успешно, даже если провайдер не участвует в обычной работе системы.

При успешном ответе появляется сообщение **«Провайдер GeoIP успешно ответил.»** и краткий результат. Если полезных полей нет, отображается **«Провайдер не вернул полезных полей»**.

Если источник не ответил, отображается сообщение **«Провайдер не ответил. Проверьте его настройки и повторите проверку.»**

Один тест внешнего провайдера учитывается в его лимите запросов.

## Вкладка «Стратегия»

### Как применять порядок

| Значение                         | Поведение                                                                   |
| -------------------------------- | --------------------------------------------------------------------------- |
| **«Строго по списку ниже»**      | Использует заданную администратором последовательность без перегруппировки. |
| **«Сначала установленные базы»** | Сначала проверяет локальные MaxMind и DB-IP, затем внешние сервисы.         |
| **«Сначала внешние сервисы»**    | Сначала проверяет IPLocate.io и IP2Location.io, затем локальные базы.       |

При автоматической группировке ручной порядок сохраняется внутри группы локальных и внутри группы внешних провайдеров.

### Приоритет провайдеров

В блоке **«Приоритет провайдеров»** всегда присутствуют все четыре источника:

* MaxMind GeoLite2;
* DB-IP Lite;
* IPLocate.io;
* IP2Location.io.

Перемещайте строки мышью, чтобы изменить очерёдность. Каждый встроенный провайдер должен присутствовать в списке один раз.

Фактически вызываются только включённые, настроенные, доступные и совместимые с выбранной операцией провайдеры.

### Переключение провайдеров

**«Переключение провайдеров»** разрешает перейти к следующему источнику, если текущий:

* завершил запрос ошибкой;
* не вернул полезных данных.

Выключенные, ненастроенные, недоступные, несовместимые или временно приостановленные провайдеры пропускаются. При выключенном переключении система останавливается после первого провайдера, к которому был фактически выполнен запрос.

### Объединение результатов

**«Объединять результаты»** позволяет дополнить неполный ответ следующими источниками.

Первый полезный ответ остаётся основным. Следующие провайдеры заполняют только отсутствующие поля и не перезаписывают уже полученные значения.

Для полноценного объединения необходимо также включить **«Переключение провайдеров»**. Без него система не продолжит цепочку после первого выполненного запроса.

## Вкладка «Кеш»

### Сохранение результатов

| Настройка                                | Назначение                                                                                                                               |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **«Кешировать результаты (быстрее)»**    | Включает сохранение найденных и пустых результатов. При выключении обращения выполняются без основного и быстрого кеша.                  |
| **«Дополнительное быстрое кеширование»** | Хранит ограниченное количество последних результатов для ускоренного повторного доступа. Работает только вместе с основным кешированием. |
| **«Политика кеширования»**               | Определяет, результаты для каких IP разрешено сохранять.                                                                                 |

### Политика кеширования

| Значение                         | Поведение                                                                               |
| -------------------------------- | --------------------------------------------------------------------------------------- |
| **«Только публичные IP-адреса»** | Сохраняет результаты только для публичных адресов.                                      |
| **«Все IP-адреса»**              | Разрешает сохранение результатов для всех обрабатываемых адресов.                       |
| **«Не сохранять результаты»**    | Отключает запись и чтение результатов GeoIP независимо от основного переключателя кеша. |

Если включён пропуск частных или зарезервированных IP, такие адреса завершают обработку до обращения к провайдеру и не получают обычного результата.

### Хранилище и префикс

**«Хранилище кеша»** позволяет выбрать:

* **«Основное хранилище приложения»**;
* другое хранилище, уже настроенное на сервере.

Неизвестное или отсутствующее хранилище сохранить нельзя.

**«Служебный префикс записей»** отделяет GeoIP от остальных данных кеша.

Префикс должен:

* содержать от 1 до 64 символов;
* начинаться с латинской буквы или цифры;
* содержать только латинские буквы, цифры, двоеточие, точку, подчёркивание или дефис.

Обычно менять префикс не требуется.

### Сроки и ограничения

| Поле                                      | Допустимое значение       |
| ----------------------------------------- | ------------------------- |
| **«Срок хранения найденного результата»** | От 60 до 2 592 000 секунд |
| **«Срок хранения пустого результата»**    | От 30 до 86 400 секунд    |
| **«Время блокировки запроса»**            | От 1 до 30 секунд         |
| **«Лимит быстрого кеша»**                 | От 0 до 100 000 записей   |

Найденные и пустые результаты имеют разные сроки хранения. Пока действует срок пустого результата, система не повторяет проверку этого IP.

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

Значение `0` в поле **«Лимит быстрого кеша»** отключает дополнительный быстрый уровень.

### Обновление кеша после изменений

После сохранения основных настроек GeoIP система переключает версию кеша. Ранее сохранённые результаты сразу перестают использоваться.

Версия также меняется после:

* изменения данных доступа провайдера;
* успешной установки новой локальной базы;
* действия **«Очистить кеш GeoIP»**.

Старые записи удаляются хранилищем после завершения их срока. Кеш других разделов приложения не очищается.

## Вкладка «Отказоустойчивость»

### Автоматическая пауза при сбоях

**«Временно отключать сбойный источник»** защищает сайт от повторных обращений к провайдеру, который часто завершается ошибкой.

Ошибки учитываются отдельно для каждого провайдера. После достижения порога источник пропускается на заданное время, а система может продолжить работу с другими провайдерами.

Успешный технический запрос сбрасывает накопленное состояние ошибки. После завершения паузы провайдер снова допускается к работе автоматически.

Сохранённые результаты могут выдаваться из кеша, пока провайдер находится на временной паузе.

### Параметры временной паузы

| Поле                     | Допустимое значение    |
| ------------------------ | ---------------------- |
| **«Порог ошибок»**       | От 1 до 100 ошибок     |
| **«Окно ошибок»**        | От 10 до 3 600 секунд  |
| **«Длительность паузы»** | От 10 до 86 400 секунд |

### Ограничения удалённых запросов

Настройки применяются к IPLocate.io и IP2Location.io.

| Поле                          | Допустимое значение              |
| ----------------------------- | -------------------------------- |
| **«Ожидание соединения»**     | От 100 до 30 000 миллисекунд     |
| **«Ожидание полного ответа»** | От 250 до 60 000 миллисекунд     |
| **«Повторные попытки»**       | От 0 до 5 дополнительных попыток |
| **«Задержка повтора»**        | От 0 до 5 000 миллисекунд        |

**«Ожидание полного ответа»** не может быть меньше **«Ожидания соединения»**.

Поле **«Повторные попытки»** задаёт дополнительные обращения после первого запроса. Значение `0` означает одну первоначальную попытку без повторов.

### Записи об ошибках

**«Ограничивать одинаковые предупреждения»** предотвращает многократную запись одинакового сообщения за короткий период.

**«Пауза между одинаковыми предупреждениями»** принимает значение от 30 до 86 400 секунд.

Ограничение журнала не исправляет ошибку провайдера и не заменяет временную паузу. Оно влияет только на частоту одинаковых записей.

## Вкладка «Обновления»

Вкладка управляет локальными базами MaxMind GeoLite2 и DB-IP Lite. Внешние провайдеры IPLocate.io и IP2Location.io не используют скачиваемые базы.

### Автоматические обновления

| Настройка                     | Назначение                                                                           |
| ----------------------------- | ------------------------------------------------------------------------------------ |
| **«Включить автообновление»** | Главный переключатель автоматического обновления.                                    |
| **«Обновлять базы MaxMind»**  | Разрешает обновление необходимых баз MaxMind.                                        |
| **«Обновлять базу DB-IP»**    | Разрешает обновление базы DB-IP Lite.                                                |
| **«Интервал обновления»**     | Минимальное количество дней между успешными обновлениями. Допустимо от 1 до 30 дней. |
| **«Час обновления по UTC»**   | Час запуска от 0 до 23 по времени UTC.                                               |

Переключатели обновления и использования провайдера независимы. Базу можно поддерживать в актуальном состоянии, даже если провайдер временно не участвует в основной цепочке.

### Как выполняется расписание

Планировщик приложения проверяет обновления каждый час.

Загрузка начинается только тогда, когда:

* включено **«Включить автообновление»**;
* разрешено обновление конкретного провайдера;
* текущий час соответствует **«Часу обновления по UTC»**;
* с последнего успешного обновления прошёл заданный интервал или база ещё не обновлялась.

Если обновление требуется хотя бы одной базе MaxMind, система обновляет комплект необходимых баз MaxMind.

Для автоматической работы на сервере должен быть запущен планировщик приложения.

### Необходимые данные

Для обновления MaxMind должны быть сохранены:

* **«Account ID»**;
* **«Лицензионный ключ»**.

Автообновление MaxMind нельзя включить без этих данных.

Для DB-IP необходимо сохранить подтверждение **«Подтвердить атрибуцию DB-IP»**. Оно требуется как для автоматического, так и для ручного обновления.

### Ручное обновление

В блоке **«Ручное обновление»** кнопка **«Обновить сейчас»** доступна отдельно для:

* MaxMind GeoLite2;
* DB-IP Lite.

Ручное обновление выполняется независимо от:

* главного переключателя автообновления;
* выбранного часа;
* заданного интервала;
* переключателя **«Включить провайдера»**.

Одновременно выполняется только одно обновление соответствующей базы.

### Безопасность установки базы

Во время обновления система:

1. Скачивает данные с зафиксированного адреса провайдера.
2. Помещает загрузку во временное расположение.
3. Извлекает нужную базу.
4. Проверяет формат и возможность чтения.
5. Повторно проверяет подготовленный файл.
6. Заменяет действующую базу без остановки сайта.
7. Обновляет состояние кеша GeoIP.

Если проверка или загрузка завершается ошибкой до замены, действующая база сохраняется.

После успешной установки новая база становится доступна без перезапуска приложения.

Сообщение об успехе: **«GeoIP база успешно обновлена и проверена.»**

## Вкладка «Диагностика»

### Общий статус

В верхней части отображается:

* **«GeoIP готов к работе»**;
* **«GeoIP требует внимания»**.

Когда GeoIP включён, готовность означает, что доступен хотя бы один включённый провайдер.

Если главный переключатель GeoIP выключен, статус готовности не означает, что определение местоположения выполняется.

При включённом режиме только чтения кеша отображается отдельное пояснение о том, что неизвестные IP не передаются провайдерам.

### Состояние провайдеров

Для каждого провайдера отображаются:

* **«Включено»** или **«Выключено»**;
* **«Доступен»** или **«Недоступен»**;
* **«Временная пауза»**, если источник приостановлен после ошибок;
* время последнего успешного ответа;
* безопасное сообщение о последней ошибке;
* время ответа в миллисекундах, если оно известно.

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

Для внешнего провайдера доступность означает наличие обязательного ключа. Фактическую сетевую доступность проверяйте кнопкой **«Проверить»** на вкладке **«Провайдеры»** и по времени последнего успешного ответа.

Кнопка **«Снять временную паузу»** очищает состояние выбранного провайдера. Кнопка **«Снять все временные паузы»** выполняет действие сразу для всех источников.

### Состояние кеша

Диагностика показывает:

* **«Состояние сохранённых результатов»** и номер версии;
* **«Записей в быстром кеше»**;
* выбранное хранилище;
* действующую политику кеширования.

Кнопка **«Очистить кеш GeoIP»** переключает версию только GeoIP-кеша. Сессии, ограничения запросов и кеши других разделов не затрагиваются.

### История обновлений

В блоке **«История обновлений»** показывается последний известный результат для MaxMind и DB-IP:

* **«Обновлено успешно»**;
* **«Ошибка обновления»**;
* **«Обновления баз ещё не выполнялись»**.

Отображаются безопасный статус и время. Пути к файлам, имена баз, контрольные суммы и исходные тексты исключений не показываются.

### Обновление диагностических данных

Кнопка **«Обновить диагностику»** повторно загружает сохранённое состояние страницы.

Открытие вкладки и обычное обновление диагностики:

* не выполняют GeoIP-поиск;
* не отправляют IP внешним сервисам;
* не расходуют лимит внешних запросов;
* не показывают сохранённые секреты.

## Где используются данные GeoIP

### Ограничения стран для направлений обмена

Откройте список направлений:

**«Основное» — «Направление обмена» — «Список направлений»**

Откройте нужное направление, затем выберите:

**«Дополнительное» — «Ограничения и проверки»**

С GeoIP связаны поля:

* **«Запрещенные страны»**;
* **«Разрешенные страны»**.

Правила применяются следующим образом:

* список запрещённых стран имеет приоритет;
* если определённая страна присутствует в **«Запрещенные страны»**, создание заявки блокируется;
* если **«Разрешенные страны»** не заполнено, отдельного ограничения по разрешённым странам нет;
* если **«Разрешенные страны»** заполнено, определённая страна должна присутствовать в этом списке;
* если страна не определена и GeoIP вернул пустой результат без ошибки, заявка не блокируется по стране;
* если GeoIP полностью выключен, списки стран для направления не применяются.

При географическом ограничении клиент получает сообщение:

> Обмен по выбранному направлению недоступен в вашей стране.

{% hint style="danger" %}
При режиме **«Остановить операцию с ошибкой»** технический сбой GeoIP рассматривается проверкой направления как невозможность безопасно подтвердить доступ. Создание заявки может быть заблокировано, даже если определить страну не удалось. Используйте этот режим только при намеренно строгой политике.
{% endhint %}

### Данные в заявке

Во время создания заявки система пытается сохранить снимок местоположения клиента:

* IP-адрес;
* континент;
* код и название страны;
* регион;
* район;
* город;
* часовой пояс;
* краткое описание местоположения.

Если определён двухбуквенный код страны, он также используется для отображения страны клиента в административном списке заявок.

Снимок сохраняется на момент создания заявки. Последующая смена IP-адреса клиента не изменяет географию уже созданной заявки.

Само дополнительное сохранение географии не прерывает создание заявки при ошибке. Исключением остаётся отдельная проверка ограничений направления при строгом режиме остановки.

### Авторизация и безопасность

GeoIP используется как дополнительная информация:

* в уведомлении об успешном входе;
* в уведомлении о блокировке после большого количества неудачных попыток;
* в журнале событий авторизации.

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

Обогащение журнала выполняется отдельно и не должно отменять успешную авторизацию. Ошибка GeoIP также не отменяет отправку уведомления о входе или блокировке.

### Географическая аналитика

Сохранённые данные заявок используются:

* в географической аналитике обменов;
* в статистике стран административного рабочего пространства;
* при расчёте количества заявок, завершённых обменов, клиентов, оборота и прибыли по географии.

Для исторической аналитики сначала используются данные, сохранённые вместе с заявкой. Поэтому отчёт не меняется из-за последующих входов клиента с другого IP-адреса.

## Сохранение настроек

### Общая кнопка «Сохранить»

Кнопка **«Сохранить»** применяет несекретные настройки всех вкладок:

* общие переключатели;
* правила IP и ошибок;
* включение провайдеров;
* подтверждение атрибуции DB-IP;
* стратегию и порядок;
* кеш;
* отказоустойчивость;
* автоматические обновления.

Переключение между вкладками не сохраняет изменения, но введённые значения остаются в форме до перезагрузки страницы.

### Отдельные действия

Сразу после подтверждения выполняются отдельно:

* **«Сохранить»** в форме данных доступа;
* **«Удалить секрет»**;
* **«Проверить»**;
* **«Обновить сейчас»**;
* **«Очистить кеш GeoIP»**;
* **«Снять временную паузу»**;
* **«Снять все временные паузы»**;
* **«Обновить диагностику»**.

После успешного отдельного действия страница повторно загружает сохранённое состояние с сервера.

{% hint style="warning" %}
Перед сохранением ключа, проверкой провайдера, ручным обновлением базы или действием на вкладке **«Диагностика»** сначала нажмите общую кнопку **«Сохранить»**. Иначе несохранённые изменения основной формы могут быть заменены состоянием с сервера.
{% endhint %}

## Первичная настройка

<details>

<summary>Подготовка раздела</summary>

* Выдайте администратору право **«Настройки GeoIP»**.
* Откройте **«Настройки» — «Общие настройки» — «Дополнительно» — «GeoIP»**.
* На вкладке **«Основное»** временно оставьте GeoIP выключенным, если сначала хотите полностью подготовить провайдеров.
* Выберите хотя бы один источник данных.

</details>

<details>

<summary>Настройка MaxMind GeoLite2</summary>

1. Откройте вкладку **«Провайдеры»**.
2. Нажмите **«Настроить доступ»** в блоке **«Данные для скачивания MaxMind»**.
3. Введите **«Account ID»** и **«Лицензионный ключ»**.
4. Нажмите **«Сохранить»** в диалоге.
5. Откройте вкладку **«Обновления»**.
6. Нажмите **«Обновить сейчас»** для MaxMind GeoLite2.
7. После успешного обновления вернитесь на вкладку **«Провайдеры»**.
8. Убедитесь, что отображается **«База доступна»**.
9. Включите **«Включить провайдера»**.
10. Нажмите общую кнопку **«Сохранить»**.

Если готовые базы уже установлены, начните с проверки статуса и тестового запроса.

</details>

<details>

<summary>Настройка DB-IP Lite</summary>

* Разместите на сайте видимую ссылку **«IP Geolocation by DB-IP»**.
* На вкладке **«Провайдеры»** включите **«Подтвердить атрибуцию DB-IP»**.
* Нажмите общую кнопку **«Сохранить»**.
* На вкладке **«Обновления»** нажмите **«Обновить сейчас»** для DB-IP Lite.
* Убедитесь, что база установлена.
* Включите **«Включить провайдера»**.
* Нажмите общую кнопку **«Сохранить»**.

</details>

<details>

<summary>Настройка IPLocate.io</summary>

* На вкладке **«Провайдеры»** нажмите **«Настроить доступ»** в блоке **«Доступ к IPLocate.io»**.
* Сохраните **«API-ключ»**.
* Включите **«Включить провайдера»**.
* Нажмите общую кнопку **«Сохранить»**.
* Выполните отдельную проверку по публичному IP.

</details>

<details>

<summary>Настройка IP2Location.io</summary>

* На вкладке **«Провайдеры»** нажмите **«Настроить доступ»** в блоке **«Доступ к IP2Location.io»**.
* Сохраните **«API-ключ»**.
* Включите **«Включить провайдера»**.
* Нажмите общую кнопку **«Сохранить»**.
* Выполните отдельную проверку по публичному IP.

</details>

### Завершение настройки

1. На вкладке **«Стратегия»** задайте режим и порядок провайдеров.
2. Включите **«Переключение провайдеров»**, если настроено несколько источников.
3. При необходимости включите **«Объединять результаты»**.
4. Настройте кеш и сроки хранения.
5. Проверьте параметры отказоустойчивости.
6. Настройте автоматическое обновление локальных баз.
7. На вкладке **«Основное»** включите **«Определять страну и город по IP»**.
8. Нажмите общую кнопку **«Сохранить»**.
9. Откройте **«Диагностика»** и проверьте итоговое состояние.

## Проверка результата

<details>

<summary>Проверка отдельного провайдера</summary>

* Откройте вкладку **«Провайдеры»**.
* Введите публичный IP в поле **«Публичный IP-адрес»**.
* Выберите требуемый **«Тип определения»**.
* Нажмите **«Проверить»** напротив нужного источника.
* Убедитесь, что провайдер вернул ожидаемые поля.

</details>

<details>

<summary>Проверка основной цепочки</summary>

На вкладке **«Диагностика»** убедитесь, что:

* отображается **«GeoIP готов к работе»**;
* хотя бы один используемый провайдер имеет статусы **«Включено»** и **«Доступен»**;
* у нужного провайдера нет статуса **«Временная пауза»**;
* кеш использует ожидаемое хранилище и политику;
* для локальных баз отображается успешное обновление.

Успешный отдельный тест не подтверждает работу основной цепочки. Дополнительно проверьте:

* главный переключатель GeoIP;
* переключатель нужного провайдера;
* порядок и стратегию;
* режим только чтения кеша;
* временные паузы;
* поддержку требуемого типа определения.

</details>

<details>

<summary>Проверка ограничений направления</summary>

* Откройте тестовое направление.
* Проверьте поля **«Запрещенные страны»** и **«Разрешенные страны»**.
* Убедитесь, что GeoIP включён и может определить страну.
* Выполните контролируемую проверку создания заявки.
* Проверьте отображение страны в заявке и географической аналитике.

</details>

## Если GeoIP не работает

| Состояние                                                       | Что проверить                                                                         |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| Пункт **«GeoIP»** отсутствует                                   | Право **«Настройки GeoIP»** у группы администратора                                   |
| Внешний провайдер не включается                                 | Сначала сохраните его API-ключ                                                        |
| DB-IP не включается или не обновляется                          | Разместите обязательную ссылку и сохраните **«Подтвердить атрибуцию DB-IP»**          |
| Автообновление MaxMind не сохраняется                           | Проверьте **«Account ID»** и **«Лицензионный ключ»**                                  |
| Локальный провайдер имеет статус **«База не установлена»**      | Выполните ручное обновление и проверьте его результат                                 |
| Внешний провайдер имеет статус **«Доступен»**, но не отвечает   | Выполните отдельную проверку и проверьте ключ, сеть и лимит сервиса                   |
| Отдельная проверка проходит, но обычное определение не работает | Проверьте общий переключатель, включение провайдера, стратегию, кеш и временную паузу |
| Новые IP не определяются                                        | Выключите **«Временно не обращаться к провайдерам»**                                  |
| Повторяется старый или пустой результат                         | Учитывайте сроки кеша или используйте **«Очистить кеш GeoIP»**                        |
| Автоматическое обновление не появляется в истории               | Проверьте планировщик, UTC-час, интервал, разрешение обновления и обязательные данные |
| Создание заявки блокируется при сбое провайдера                 | Проверьте режим **«Остановить операцию с ошибкой»** и ограничения направления         |
| Изменения исчезли после отдельного действия                     | Сначала сохраняйте основную форму общей кнопкой **«Сохранить»**                       |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/guide/nastroiki/obshie-nastroiki/geoip.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
