Perlモジュールである Net::Netmask を使った時の備忘録です。

■説明
CIDR表記を引数にして、利用できるIPアドレスリストを返してくれるモジュールが無いか調べたところ「Net::Netmask」で出来ると言うことが分かったのでちょっとやってみました:)

■OS
CentOS 6.3 64bit
 


 

(1)Net::Netmaskをインストール

[root@example ~]# cpan -i Net::Netmask

ここでは、cpanでインストールします:)
 

(2)テストスクリプト作成

[root@example ~]# mkdir devel/
[root@example ~]# cd devel/
[root@example devel]# vi test.pl

以下のスクリプトを張り付ける。

#!/usr/bin/perl
use strict;
use warnings;
use Net::Netmask;

my $IP;
my $block = new Net::Netmask ("192.168.0.0/24");

for $IP ($block->enumerate) {
        print $IP, "\n";
}

ここでは、「192.168.0.0/24」のIPアドレスリストを表示させてみます。
 

(3)実行してみる

[root@example devel]# chmod +x test.pl
[root@example devel]# ./test.pl
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
192.168.0.7
192.168.0.8
192.168.0.9
(snip)
192.168.0.246
192.168.0.247
192.168.0.248
192.168.0.249
192.168.0.250
192.168.0.251
192.168.0.252
192.168.0.253
192.168.0.254
192.168.0.255

この状態だと「ネットワークアドレス」と「ブロードキャスト」が表示されるので、必要ない場合は工夫が必要ですね。
 

参考文献

1. http://search.cpan.org/~muir/Net-Netmask-1.9016/Netmask.pod


1月 21, 2013 at 9:23 pm by 黒ぶちメガネ
Category: Linux, Perlスクリプト