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