[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