<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 04.04.2015 17:14, Nick Knutov wrote:<br>
    </div>
    <blockquote cite="mid:551FF1AE.50409@knutov.com" type="cite">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      Есть трехмагабайтный список формата<br>
      ip/bitmask $category<br>
      Например<br>
      1.2.3.4/24 5<br>
      <br>
      Требуется по ип очень быстро получить $class.<br>
      использую Net::Subnet.<br>
      <br>
      Сделал для каждой строчки <br>
      # собираем хеш $cat->@networks<br>
      push @{$reverse_cat->{$cat}}, $ip_mask;<br>
      <br>
      # Для каждого блока делаем subnet_matcher (памяти много)<br>
      our $matcher;<br>
      foreach ( keys $reverse_cat ) {<br>
          $matcher->{$_} = subnet_matcher @{$reverse_cat->{$_}};<br>
      }<br>
      <br>
      <big># для каждого запроса </big>возвращаем категорию если ип
      попал в матчер<br>
      foreach ( keys $matcher ) {<br>
          return $_ if $matcher->{$_}->($ip);<br>
      }<br>
      <br>
      Когда исходный файл с категориями на 200к строчек - все это
      работает недостаточно быстро.<br>
      <br>
      Вопрос - чем бы это заменить?<br>
      <br>
      Как из моего списока ип сетей сделать бинарную базу для Geo::IP я
      не смог нагуглить (и вообще и с учетом того, что по запросу надо
      получать именно нашу категорию, которая сейчас число, а не
      двухбуквенный код).<br>
      <br>
      На сайте Geo::IP в разделе про CSV базы предложен вариант с
      хранением структуры в мускульной базе, но для наших нагрузок оно
      так же будет недостаточно быстрым.<br>
      <br>
      Какие еще есть альтернативы?<br>
      <br>
      <pre class="moz-signature" cols="72">-- 
Best Regards,
Nick Knutov
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://knutov.com">http://knutov.com</a>
ICQ: 272873706
Voice: +7-904-84-23-130 </pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    Привет.<br>
    я юзаю Patricia. быстрее её Radix Tree ничего не будет.<br>
  </body>
</html>