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