Геолокационные IP-базы
Общие сведения о геолокационных IP-базах
Геолокационная IP-база (GeoIP) – это база данных, содержащая информацию по пулам IP-адресов, их координатам и наименованиям локаций. Используется для определения местоположения IP-адреса пользователя: страны, города, широты. долготы и др.
В Termidesk Connect такие IP-базы используются для активации определенного алгоритма балансировки и выбора ближайшей к пользователю Площадки.
Добавление геолокационных IP-баз
Для добавления собственной геолокационной IP-базы нужно:
-
конвертировать основную геолокационную IP-базу в формат
JSON, например, с помощью утилитыmmdbctl:
mmdbctl export <путь_к_базе_.mmdb> -o <путь_к_новому_файлу_базы_.json>
-
сформировать текстовый файл (например,
geonames.txt) для удобного поискаgeoname_idс помощью командной строки:
jq -r '. a| "(.continent.geoname_id),(.country.geoname_id),(.subdivisions[0].geoname_id),(.city.geoname_id),(.location a| "(.latitude),(.longitude),(.accuracy_radius)")a|(.continent.code)a|(.country.names a| "(.ru):(.en)")a|(.subdivisions[0].names a| "(.ru):(.en)")a|(.city.names a| "(.ru):(.en)");"' exported-geoip.json a| sort a| uniq > geonames.txt
-
найти необходимые географические идентификаторы в базе данных, например:
grep -i 'Тюмень' geonames.txt grep -i 'vladivos' geonames.txt sed -e '/Санкт/I!d' -e '/rus/I!d' geonames.txt
| Идентификаторы находятся в первом столбце, если разделительный знак принять за «|». В этом же списке находятся координаты в системе WGS 84 (последние два значения), а также радиус точности местоположения в километрах. Координаты можно заменить, воспользовавшись онлайн-картой. |
-
сформировать файл (например,
infrastructure.txt) с содержимым IP-адресов и их местоположений:
10.0.1.0/24,6255148,2017370,536203,498817,59.93863,30.31413,5
10.0.3.0/25,6255148,2017370,1488747,1488754,57.138530,65.522186,1
10.0.3.128/25,6255148,2017370,1488747,1488754,57.116799,65.550740,1
|
Где:
Необходимые столбцы: 1, 6, 7. |
-
конвертировать получившийся файл в формат MMDB с помощью исполняемого файла
writer.py:
|
Необходимо предварительно установить библиотеку
|
python3 writer.py --file infrastructure.txt --output infrastructure.mmdb