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

<br clear="all">-- <br>Alex Kapranoff.<br>
<br><br><div class="gmail_quote">2009/11/29 Ruslan Zakirov <span dir="ltr">&lt;<a href="mailto:ruz@bestpractical.com">ruz@bestpractical.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Всем привет,<br>
<br>
Недавно мы обсуждали определение положения по IP адресу. Мне<br>
посоветовали БД от <a href="http://ipgeobase.ru" target="_blank">http://ipgeobase.ru</a>.<br>
<br>
Я рад, что существует такой ресурс. Был немного удивлен примерами кода<br>
и очень удивлен структурой БД. Код на perl страшен, достаточно сделать<br>
для него perltidy и он уже становится читабельный. Алгоритм тоже не<br>
сахар, но это издержки структуры файла. Переключение на указание<br>
смещения вместо номеров строк, позволит сделать быстрый поиск прямо из<br>
файлов без полного сканирования или загрузки их в память.<br>
<br>
В итоге решил отказаться от работы с файлами и заливать все в табличку<br>
БД. Написал скрипт обновления БД и модуль для работы. Пока не на<br>
CPANе, но если не будет конструктивной критики и успешно уйдет в<br>
продакшн, то залью на цпан и в гитхаб.<br>
<font color="#888888"><br>
--<br>
Веселой гео локации, Руслан.<br>
</font><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br>