use utf8; use strict; use warnings; use NetAddr::IP; use Net::Netmask; my $block = new Net::Netmask ('192.168.56.1/27'); print "block:$block"."\n"; #ネットワークアドレス print "base:".$block->base()."\n"; #サブネットマスク print "mask:".$block->mask()."\n"; #ホストマスク print "hostmask:".$block->hostmask()."\n"; #ビットの数 print "bits:".$block->bits()."\n"; #サイズ取得 print "size:".$block->size()."\n"; print "maxblock:".$block->maxblock()."\n"; #ブロードキャストアドレス print "broadcast:".$block->broadcast()."\n"; print "next:".$block->next()."\n"; print "first:".$block->first()."\n"; #IPアドレスの範囲を取得 ネットワークアドレス、ブロードキャストアドレス含む for my $ip ($block->enumerate) { print "$ip\n"; }
実行結果
block:192.168.56.0/27 base:192.168.56.0 mask:255.255.255.224 hostmask:0.0.0.31 bits:27 size:32 maxblock:21 broadcast:192.168.56.31 next:192.168.56.32 first:192.168.56.0 192.168.56.0 192.168.56.1 192.168.56.2 192.168.56.3 192.168.56.4 192.168.56.5 192.168.56.6 192.168.56.7 192.168.56.8 192.168.56.9 192.168.56.10 192.168.56.11 192.168.56.12 192.168.56.13 192.168.56.14 192.168.56.15 192.168.56.16 192.168.56.17 192.168.56.18 192.168.56.19 192.168.56.20 192.168.56.21 192.168.56.22 192.168.56.23 192.168.56.24 192.168.56.25 192.168.56.26 192.168.56.27 192.168.56.28 192.168.56.29 192.168.56.30 192.168.56.31