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

Ruslan Zakirov ruslan.zakirov на gmail.com
Вс Ноя 29 11:20:16 PST 2009


2009/11/29 spleenjack <spleenjack на gmail.com>:
> Год назад прикручивал гео-локацию с использованием этой базы. Долго
> ковырялся с форматом и с самими данными.
>
> Выяснилось, что там много неконсистентности, пропусков и ошибок с наложением
> диапазонов. Например,  диапазон 1-10 отмечен как Москва, и далее идет три
> поддиапазона: 3-5 на Владивосток, 5-7 на Питер, 9 на Тверь. Здесь перекрытие
> 5-ки (непонятно, куда именно она относится), нет поддиапазонов для 1-2, 8 и
> 10.

Я пытался найти пересечения блоков, но не дождался завершения запроса :)

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

У меня в проекте тоже фоллбек к maxmind.

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

Либа просто возвращает список блоков содержащих IP, по умолчанию от
наименьшего к наибольшему. Решать вам, что именно делать с
конфликтами.

Сейчас пойду искать пересечения блоков в базе.

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



-- 
Best regards, Ruslan.


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