Кстати, nginx внутри себя для работы с большими списками ip-диапазонов
использует Radix tree. Никакой базы не надо, сложность поиска — максимум 32
операции (O(32), хыхы). Реализуется за 20 минут. Или с цпана берётся
Net::Patricia.

-- 
Alex Kapranoff.


2009/11/29 Ruslan Zakirov <[email protected]>

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

Ответить