« おはよう | Main | いい天気 »

17 March 2009

CIDR の IP アドレスを列挙する

のを探していたら、ここのページにズバリありました。

・Perlスクリプトで得る方法

perl -e 'use Net::CIDR;foreach(Net::CIDR::cidr2octets("192.168.0.64/28")){print "$_\tREJECT\n"}'

うちの環境では動きませんでした。
何かframeworkが入っていないからだと思います(^^ゞ

おそらく Net::CIDR がインストールされていなかったんだと想像しました。インストールは以下で OK です。

$ cpan Net::CIDR

で、one-liner で実行すると。

$ perl -MNet::CIDR -le 'print "$_\tREJECT" for (Net::CIDR::cidr2octets("192.168.0.1/28"))'
192.168.0.0     REJECT
192.168.0.1     REJECT
192.168.0.2     REJECT
192.168.0.3     REJECT
192.168.0.4     REJECT
192.168.0.5     REJECT
192.168.0.6     REJECT
192.168.0.7     REJECT
192.168.0.8     REJECT
192.168.0.9     REJECT
192.168.0.10    REJECT
192.168.0.11    REJECT
192.168.0.12    REJECT
192.168.0.13    REJECT
192.168.0.14    REJECT
192.168.0.15    REJECT

ちょっとした確認に便利ですねぇ。 あとは IP アドレスの範囲から CIDR を求める関数もあります。

$ perl -MNet::CIDR -le 'print join( qq{\n}, Net::CIDR::range2cidr("192.68.0.0-192.68.255.255", "10.0.0.0-10.3.255.255"))'
192.68.0.0/16
10.0.0.0/14

今ご紹介しました range2cidr や cidr2octets ほかにもいろいろあります。サンプルは perldoc Net::CIDR にて。

TrackBack

TrackBack URL for this entry:
http://bb.lekumo.jp/t/trackback/517129/31022845

Listed below are links to weblogs that reference CIDR の IP アドレスを列挙する:

Comments

Post a comment

Access Ranking

Powered by Six Apart
Sponsored links