Perlモジュール Net::Patricia

概要

  • ルーティングテーブルの検索(longest match)を行えるperlのモジュールとして Net::Patricia がある。
  • 経路登録、検索エンジンはC言語でかかれており、perlで使えるようなインターフェイスになっている。

インストール

  • FreeBSDのportsを使う
    root@piment /work/ports/net/p5-Net-Patricia% make install
  • インストール結果
    % pkg_info |grep Patricia
    p5-Net-Patricia-1.15_1 Perl module for fast IP address lookups

簡単な例

  • ソース
    #!/usr/bin/env perl
    
    use Net::Patricia;
    
    my $pt = new Net::Patricia;
    
    $pt->add_string('10.0.0.0/8', '10.0.0.0/8');
    $pt->add_string('10.0.0.0/16', '10.0.0.0/16');
    $pt->add_string('10.0.0.0/24', '10.0.0.0/24');
    $pt->add_string('10.0.0.0/27', '10.0.0.0/27');
    $pt->add_string('10.0.0.5/32', '10.0.0.5/32');
    
    print '5.6.7.8 : ', $pt->match_string('5.6.7.8'), "\n";
    print '10.3.2.1 : ', $pt->match_string('10.3.2.1'), "\n";
    print '10.0.2.1 : ', $pt->match_string('10.0.2.1'), "\n";
    print '10.0.0.50 : ', $pt->match_string('10.0.0.50'), "\n";
    print '10.0.0.10 : ', $pt->match_string('10.0.0.10'), "\n";
    print '10.0.0.5 : ', $pt->match_string('10.0.0.5'), "\n";
  • 実行結果
    5.6.7.8 : 
    10.3.2.1 : 10.0.0.0/8
    10.0.2.1 : 10.0.0.0/16
    10.0.0.50 : 10.0.0.0/24
    10.0.0.10 : 10.0.0.0/27
    10.0.0.5 : 10.0.0.5/32

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-10-27 (火) 13:01:30 (2968d)