Да, это стандартное решение (только, скорее, первый и последний ип и дальше запрос с between).
Но в случае, если засунуть это в мускль - не хватает производительности. С sqlite ещё хуже (и нужна параллельность). Вы знаете какой-то модуль, который позволил бы держать всё это в памяти перл скрипта и делать запросы с between или >= and <= средствами перла? 05.04.2015 9:37, PEF Secure пишет: > On Saturday, April 04, 2015 19:14:06 Nick Knutov wrote: >> Есть трехмагабайтный список формата >> ip/bitmask $category >> Например >> 1.2.3.4/24 5 >> >> Требуется по ип очень быстро получить $class. >> использую Net::Subnet. > Я бы сделал так: айпи переводится в число. Маска задаёт количество хостов. > Преобразованные данные такие: > ip, hosts, category > > Поиск категории превращается в поиск по условию: > ip <= $ip && $ip < ip + hosts > > Данные в таком виде можно положить в любую базу или просто загрузить в память > в виде дерева. > -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
