Геолокационные 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 '. | "(.continent.geoname_id),(.country.geoname_id),(.subdivisions[0].geoname_id),(.city.geoname_id),(.location | "(.latitude),(.longitude),(.accuracy_radius)")|(.continent.code)|(.country.names | "(.ru):(.en)")|(.subdivisions[0].names | "(.ru):(.en)")|(.city.names | "(.ru):(.en)");"' exported-geoip.json | sort | 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