IPアドレスのレンジをパパッとライス

パパッとライスはGoogleIMEが勝手にやった事なので気にしないで下さい。

という事でIPアドレスのレンジで固まる事が多々あります。
何かっていうと192.168.0.0/24とかだとピンと来るんですが
192.168.0.64/26とかだと若干固まり192.168.0.0/30とかだと
完全に集中して計算しないと開始と終わり名古屋のIPアドレスが分かりましぇん。
しかもその結果が間違えてたりするという目も当てられない状態となってしまいます。

助けてCPAN〜という事で開始と終点のIPアドレスがすぐ分かるモジュールが・・・やっぱり有るんです。
http://search.cpan.org/~miker/NetAddr-IP/:NetAddr::IP

という訳で即答出来るようにスクリプトをこしらえました。

↓サンプル

use strict;
use warnings;

use Perl6::Say;
use NetAddr::IP;

my @ip = qw(
192.168.0.0/32
192.168.0.0/24
192.168.0.0/22
192.168.0.0/30
);

for my $i (@ip) {
    say(NetAddr::IP->new($i)->range);
}

出力は斯様になります。

192.168.0.0 - 192.168.0.0
192.168.0.0 - 192.168.0.255
192.168.0.0 - 192.168.3.255
192.168.0.0 - 192.168.0.3

ワンライナーだとこんな感じかなぁ。もうちょっとすっきりすると嬉しいけど。

$ perl -MNetAddr::IP -le "print NetAddr::IP->new('192.168.0.0/24')->range"

これで喋りながらこっそり出せるね!