IPアドレスの計算 (module)NetAddr-IP
back
http://search.cpan.org/~luismunoz/NetAddr-IP-3.21/
Perl 5.6 以降限定 (5.005x だと動かない)
ま、計算といっても色々あるけど。
use NetAddr::IP;
my $ip = new NetAddr::IP shift;
print "The address is ", $ip->addr, " with mask ", $ip->mask, "\n";
これで、"192.168.1.0" を渡せば
The address is 192.168.1.0 with mask 255.255.255.255
192.168.1.0/24 なら
The address is 192.168.1.0 with mask 255.255.255.0
192.168.1.0/255.255.255.128 なら
The address is 192.168.1.0 with mask 255.255.255.128
メソッドとしては他に (192.168.1.0/24の場合)
$ip->broadcast
$ip->network
$ip->masklen
$ip->cidr
$ip->range
$ip->first
$ip->last
などなど
また
my $ip = new NetAddr::IP 'xx.xx.xx.xx';
if ($ip->within(new NetAddr::IP 'yy.yy.yy.yy/zz')) {
print "in\n";
}
else {
print "out\n";
}
という「ネットワーク内のアドレス?」というメソッドもあり
back