CommuniGate Pro
Версия 6.4
 

Интеграция с внешними сервисами IP-геолокации

Задача IP-геолокации - определение местоположения устройства по его IP-адресу.

Результаты геолокации отображаются в административном и пользовательском интерфейсах, там, где отображаются IP-адреса.
Пример отображения:

Временно Заблокированные Сетевые Адреса

  Адрес в Сети Местонахождение Активно до
[87.246.7.229] Европа, 🇬🇧 Великобритания, Англия, Лондон 5:48:57PM
[20.63.98.42] Северная Америка, 🇨🇦 Канада, Онтарио, Торонто 5:59:16PM
[20.77.253.72] Европа, 🇬🇧 Великобритания, Уэльс, Кардифф 6:05:16PM
[119.188.157.139] Азия, 🇨🇳 Китай, Пекин, Сичэн 6:25:05PM

Обратите внимание: отображение эмодзи-символов с флагами стран зависит от используемой ОС и браузера. В частности, на Windows не работает в браузере Chrome, но работает в Firefox.

Провайдеры

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

У разных сервисов разные базы данных и разная точность определения. Базы обновляются на основе инфрормации об IP-адресах, которую предоставляют интернет-провайдеры. Поэтому точность определения геолокации также зависит от того, насколько точно внесены данные в реестр IP-адресов. Чаще всего невозможно определить местоположение точнее, чем до уровня города. Также интернет-провайдеры могут предоставлять находящиеся у них на обслуживании IP-адреса из других городов клиентам, которые находятся в другом регионе, что может приводить к ошибочному определению города. Иногда точность оказывается не выше уровня страны, так как реестры IP-адресов допускают не указывать город в графе местоположения.

Интеграция

Интеграция осуществляется приложением geolocationservice.sppr из главного домена.

По умолчанию приложение запрограммировано на сервис IPWHOIS.IO с его "бесплатным планом" на менее 10,000 запросов в месяц для некоммерческого использования. Но его можно перепрограммировать на другие сервисы.

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

В ядре CommuniGate Pro есть "кэш" ответов на запросы об IP-адресах. То есть, если запрос для каких-то IP-адреса и языка отображения был отправлен провайдеру, то в дальнейшем запрос для данной комбинации отправляться не будет. Более того, если данные геолокации "соседних" адресов в кэше окажутся одинаковые, то и для всего диапазона промежуточных IP-адресов между ними данные будут считаться одинаковыми, и запросы на них отправляться не будут.

Заполнение кэша начальными данными осуществляется приложением geolocationinit.sppr из главного домена. Заполняются диапазоны локальных и служебных IP-адресов, для которых нет геолокации. Вы можете кастомизировать приложение и расписать диапазоны LAN-адресов, таким образом определив геолокацию внутри Вашей организации.

Интерфейсы

Интеграция CommuniGate Pro с сервисами IP-геолокации доступна в:

  • приложениях CG/PL, выполняющихся на сервере (PBX Задачи, WebUser аплеты и т.п.).
  • сессиях протокола XIMSS, использующихся клиентскими программами.
  • программах и сценариях, использующих интерфейс CLI.

Операции

Доступна CLI-команда для управления кэшем геолокации:

IPGEOLOCATION ip-address [ параметры ]
ip-address : строка или IP-адрес
В этом параметре задаётся IP адрес для проверки.
параметры : словарь
Этот словарь должен содержать строковый элемент op, задающий применяемую операцию. Другие элементы словаря зависят от типа операции. По умолчанию параметры { op=get; lang=en; }

Доступны следующие операции:

get
Эта операция возвращает данные из кэша, либо отправляет запрос провайдеру, если информации для данного IP-адреса и языка в кэше нет.
Параметры:
lang : строка
код языка, по умолчанию en.
Результаты:
словарь
ключи словаря:
status : строка
wait или error. Значение wait означает, что информации в кэше небыло, запрос был отправлен провайдеру, и что данные следует запросить заново через несколько секунд.
Ключи со значениями, независимыми от языка:
c_m : код континента
c_c : код страны
c_e : эмодзи-символ флага страны
c_f : URL-cсылка на изображение флага страны
c_r : код региона
Зависимые от языка ключи со значениями:
l_1 : название континента
l_2 : название страны
l_3 : регион/область/штат/провинция
l_4 : район/графство/город
l_5 : город/улица
l_6 : улица
Наличие любого из значений не гарантировано и зависит от провайдера.
set
Эта операция пишет данные в кэш.
Параметры:
lang : строка
код языка, по умолчанию en.
с_m, с_c, с_e, с_f, с_r, l_1, l_2, l_3, l_4, l_5, l_6 : строки
данные геолокации.
re : строка или IP-Адрес
конец диапазона относительно параметра ip-address.
full : строка
при наличии параметра запись будет считается полной, и для данного адреса/диапазона не будет осуществляться запросов к провайдеру для отсутствующих языков.
Для использования этой команды необходимо обладать правами по Администрированию Сервера "Может менять установки Сервера".
clear
Эта операция обнуляет содержимое кэша, и вызывает приложение geolocationinit.sppr для инициализации.
Параметры:
отсутствуют
значение параметра ip-address игнорируется
Для использования этой команды необходимо обладать правами по Администрированию Сервера "Может менять установки Сервера".
print
Эта операция распечатывает содержимое кэша.
Параметры:
отсутствуют
значение параметра ip-address игнорируется
Результаты:
словарь: содержимое кэша

Руководство CommuniGate Pro. Copyright © 2020-2023, АО СталкерСофт