[Moscow.pm] Написал интерфейс к базе от ipgeobase.ru

spleenjack spleenjack на gmail.com
Вс Ноя 29 06:04:18 PST 2009


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

Выяснилось, что там много неконсистентности, пропусков и ошибок с 
наложением диапазонов. Например,  диапазон 1-10 отмечен как Москва, и 
далее идет три поддиапазона: 3-5 на Владивосток, 5-7 на Питер, 9 на 
Тверь. Здесь перекрытие 5-ки (непонятно, куда именно она относится), нет 
поддиапазонов для 1-2, 8 и 10.

А так как каждый ip нужно было определять быстро и однозначно, пришлось 
такие ошибки отлавливать, правильно разбивать вложенные диапазоны, 
отлавливать дырки и прочее. (Плюс была причина в связке с украинскими 
диапазонами, взятыми из базы от maxmind, но это в принципе неважно).

Может такие заморочки и не нужны вовсе, да и база сама наверняка уже 
стала точнее и правильнее. Так, а я вообще к чему все это?.. :) Либа 
может такие непонятки отлавливать?

Ruslan Zakirov пишет:
> Всем привет,
> 
> Недавно мы обсуждали определение положения по IP адресу. Мне
> посоветовали БД от http://ipgeobase.ru.
> 
> Я рад, что существует такой ресурс. Был немного удивлен примерами кода
> и очень удивлен структурой БД. Код на perl страшен, достаточно сделать
> для него perltidy и он уже становится читабельный. Алгоритм тоже не
> сахар, но это издержки структуры файла. Переключение на указание
> смещения вместо номеров строк, позволит сделать быстрый поиск прямо из
> файлов без полного сканирования или загрузки их в память.
> 
> В итоге решил отказаться от работы с файлами и заливать все в табличку
> БД. Написал скрипт обновления БД и модуль для работы. Пока не на
> CPANе, но если не будет конструктивной критики и успешно уйдет в
> продакшн, то залью на цпан и в гитхаб.


Подробная информация о списке рассылки Moscow-pm