NAME
HTTP::MobileAttribute::Plugin::CIDR - キャリヤのCIDRの含まれるIPアドレスかを調べる
DESCRIPTION
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