●ipgrep.plとは?

 ipgrep.plとは、指定したIPv4アドレスが含まれるIP/CIDRの行を抽出するスクリプトです。

 たとえば、192.168.0.17は192.168.0.0/23の一部ですが、FirewallやL3SWのアクセス制御リスト(ACL)のような複数のIP CIDRが羅列されている中で、一体どこの行に192.168.0.17は含まれるのか、そもそも含まれていないのかを探すのは結構大変です。

 そんな時にこのipgrep.plを使用すると、192.168.0.17が含まれるIP/CIDRを一発で探し当てることができます。
 もともとは、私がFiwarellログの突き合わせ用に作成した作業用スクリプトの配布です。

●制限事項

下記のような制限事項があります。ご了承ください。

●スクリーンショット(コンソールログ

 申し訳ありませんが、スクリプト本体やコンソールログを見てどんなプログラムかわからない方には使用する必要は無いと思われます。※はコメントです。色はPuTTY風味のため、ご使用の環境によって異なります。

Fig.1 コンソール画面

[yuaiho@localhost ipgrep]$ ls -l
total 16
-rw-r--r-- 1 yuaiho yuaiho 106 Aug 26 23:12 PrivateIP-ClassA
-rw-r--r-- 1 yuaiho yuaiho 62 Aug 26 23:14 PrivateIP-ClassB
-rw-r--r-- 1 yuaiho yuaiho 116 Aug 26 23:17 PrivateIP-ClassC
-rwxr-xr-x 1 yuaiho wheel 2768 Aug 26 23:05 ipgrep.pl

[yuaiho@localhost ipgrep]$ cat PrivateIP-ClassA
## Tokyo WAN
10.0.0.0/24
## Nagoya WAN
10.1.0.0/16
## Osaka WAN
10.2.0.0/16
## Okinawa WAN
10.72.0.0/18

[yuaiho@localhost ipgrep]$ cat PrivateIP-ClassB
## Printer Network
172.16.0.0/15
## NAS Network
172.18.0.0/16

[yuaiho@localhost ipgrep]$ cat PrivateIP-ClassC
## L3SW Management Network
192.168.0.0/24
## IP-SAN
192.168.10.0/24
## Instruments network segment
192.168.100.0/24

[yuaiho@localhost ipgrep]$ ./ipgrep.pl 192.168.10.5 PrivateIP-Class*
## IP-SAN
192.168.10.5 at 192.168.10.0/24 in file "PrivateIP-ClassC"

※./ipgrep.pl <検索対象IPAddress> <検索対象ファイル名>
 で使用します。検索対象はワイルドカードが使えます。
※リストにヒットすると、
最後にヒットした#で始まるコメント
<検索対象IPAddress> at <ヒットしたCIDR> in file "<それが存在するファイル>"
の形で出力されます。ACLの検索で使用することをを想定しています。
ACLはシャープでコメントされることが多いため、そのコメントを出せるようにしています。


[yuaiho@localhost ipgrep]$ ./ipgrep.pl 10.3.1.7 PrivateIP-Class*
※10.3.1.7はリストに登録されていないため出てきません。

[yuaiho@localhost ipgrep]$ ./ipgrep.pl 10.0.58.254 PrivateIP-Class*
※10.0.58.254もリストに登録されていないため出てきません。

[yuaiho@localhost ipgrep]$ ./ipgrep.pl 10.1.14.254 PrivateIP-Class*
## Nagoya WAN
10.1.14.254 at 10.1.0.0/16 in file "PrivateIP-ClassA"
※10.1.14.254は10.1.0.0/16に含まれるためマッチします。

※IPやファイル内のコメントは架空のものです。

●免責事項・注意(警告)

●ダウンロード

ダウンロード後に拡張子(pl.txt)を任意の拡張子に変更してください。
cronで動かす場合は環境変数を整えるか、面倒であればperlへのパスを直指定して下さい。「/usr/bin/perl」か「/usr/local/bin/perl」です。

Version 1.0 2019.05.30:ダウンロード

このプログラムは事前/事後の承諾や報告無く再配布して頂いても問題ありません。