pripsコマンドを使って指定したセグメントのIPアドレスを全て出力させる

ふと、ネットワークアドレスとCIDRを指定して対象範囲で利用できるIPアドレスの一覧を取得する楽な方法ないかなー、と思って調べて見たところ、『prips』コマンドというものがあるようなので備忘として残しておく。
UbuntuやMacであれば、以下のコマンドでインストールできる。

sudo apt install prips  # Ubuntuの場合
sudo brew install prips # Mac OS Xの場合

 

インストールできたら、以下のようにコマンドを実行することで指定レンジのIPアドレスの一覧を取得できる(ネットワークアドレスとブロードキャストアドレスも含むけど)。

prips ネットワークアドレス/CIDR
blacknon@BS-PUB-UBUNTU-01:~$ prips 172.16.16.0/30
172.16.16.0
172.16.16.1
172.16.16.2
172.16.16.3
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ prips 172.16.16.0/22 | wc -l
1024

 

ここで得られた結果を利用して、例えば指定したセグメントのIPアドレスのみをgrepするような場合、以下のようにしてやると簡単に実現できる。

grep -f <(prips ネットワークアドレス/CIDR)
blacknon@BS-PUB-UBUNTU-01:~$ echo -e "172.16.16.222\n192.168.0.2"
172.16.16.222
192.168.0.2
blacknon@BS-PUB-UBUNTU-01:~$ echo -e "172.16.16.222\n192.168.0.2" | grep -f <(prips 172.16.16.0/22)
172.16.16.222

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

This article has 1 comments

  1. Pingback: コンソール上でネットワークアドレスとCIDRを指定して対象範囲のIPアドレスをリストアップする(nmap/perlワンライナーetc…) | 俺的備忘録 〜なんかいろいろ〜

Leave a Comment

メールアドレスが公開されることはありません。

*