CIDR表記のネットワークのネットワークアドレスを出力したり、
ブロードキャストアドレス以外のIPアドレスを一覧出力したり、
またそのIPアドレス群のPing応答を確認したりするbashスクリプトを、
個人的に欲しかったので、作りました。
https://gist.github.com/djeeno/fcd09b666a8e7bd6fc356b5f410f0ff5
CentOS7、Ubuntu16.04、Ubuntu16.04(WSL)、Debian9、macOS High Sierraで動作を確認しています。
使い方を以下に例示。
# IPアドレスを一覧出力: netaddr
$ ip.sh netaddr 192.168.100.50/29
192.168.100.48
# IPアドレスを一覧出力: list
$ ip.sh list 192.168.100.0/29
192.168.100.49
192.168.100.50
192.168.100.51
192.168.100.52
192.168.100.53
192.168.100.54
# IPアドレスに対してPingを飛ばし応答のあったアドレスを出力: inuse
$ ip.sh ping 192.168.100.1/29
192.168.100.49 ttl=64 Linu time=7.43ms
192.168.100.50 ttl=128 Windows time=8.88ms
192.168.100.54 ttl=64 Linux time=5.69ms
Ping応答のttlからOSを(ある程度)判別できるので、
「これが何のOSなのか」も横に出力するようにしました。
(と言っても、Linux or UNIX or Windowsの3択ですが…)
適当に立てたマシンがDHCPからどのIPアドレスを振られているか調べる時とか、非常に便利です。