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

Ruslan Zakirov ruslan.zakirov на gmail.com
Пн Ноя 30 14:31:13 PST 2009


Странно, что там возможно сжатие. Позже попробую написать селект для оценки.

2009/12/1 spleenjack <spleenjack на gmail.com>:
> У maxmind база по России точно хуже.
> Насчет мелких блоков, которые сильно не связаны географически с внешним
> большим - думаю, это нормально. Видимо когда-то были выделены большие
> диапазоны, потом начало не хватать, ну и наделили как смогли.
>
> Есть еще предложения:
>  - сделать возможность сжатия следующих друг за другом диапазонов одного и
> того же региона (например, 1-4 + 5-8 + 9 + 10-20 = 1-20)
>  - хранение сжатой базы в памяти в таком виде, чтобы можно было быстро найти
> вхождение ip в нужный диапазон (можно как раз с индексом, который ранее был
> описан, или подобрать какое-нибудь подходящий алгоритм)
>
> ЗЫ: Кстати, я тогда это сжатие реализовал. Как сильно уменьшилось кол-во
> записей не могу сказать, но если посмотреть на данные - соседей там очень
> много, должен хороший выигрыш получится.
>
> Ruslan Zakirov пишет:
>>
>> Привет,
>>
>> Поискал вчера пересечения. Да, есть они там и их относительно не
>> много. Вернее так. Есть несколько больших блоков, которые относятся к
>> целым регионам, но некоторые мелкие блоки внутри находятся по данным в
>> другой части страны. Странно все это. Можно попытаться сравнить данные
>> с maxmind'ом и оценить разницу, но это отдельная задача для тех, кто
>> нуждается в абсолютно точной локации.
>>
>> 2009/11/29 spleenjack <spleenjack на gmail.com>:
>>>
>>> Год назад прикручивал гео-локацию с использованием этой базы. Долго
>>> ковырялся с форматом и с самими данными.
>>>
>>> Выяснилось, что там много неконсистентности, пропусков и ошибок с
>>> наложением
>>> диапазонов. Например,  диапазон 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 mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Best regards, Ruslan.


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