The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

HTTP::MobileAttribute::Plugin::CIDR - キャリヤのCIDRの含まれるIPアドレスかを調べる

DESCRIPTION

    use HTTP::MobileAttribute plugins => [ {
        module => 'CIDR',
        config => {
            cidr => 'net-cidr-mobile-jp.yaml',
        }
    }];

    my $hma = HTTP::MobileAttribute->new($ua)
    if ($hma->isa_cidr('222.7.56.248')) {
        # キャリヤの CIDR に含まれたIPアドレスだよ
    }

例えば運用中のアプリケーションを止めずにCIDRの定義を reload することができる。

    $hma->reload_cidr('new-cidr.yaml');

DESCRIPTION

'isa_cidr'メソッドに調べたいIPアドレスを引数として呼ぶと、Net::CIDR::MobileJPを使って、キャリヤの CIDR に含まれるIPアドレスかが分かります。

各キャリヤの CIDR 情報はマシンリーダブルな形式では提供されていないのでNet::CIDR::MobileJPに付属するnet-cidr-mobilejp-scraper.plを用いて各キャリアの CIDR 情報をまとめた YAML ファイルを作る必要があります。

TODO

isa_cidrに引数を与えなくても判別できるようにしたいが、Catalystなどの場合だと $c->req->headers の中に REMOTE_ADDR が入らないケースがあるので、どうしようか考え中。

AUTHORS

Kazuhiro Osawa

SEE ALSO

HTTP::MobileAttribute, Net::CIDR::MobileJP