使用ipcalc计算广播IP地址
Calculate broadcast ip address using ipcalc
我在文本文件中有一个 cidr 格式的 ip 地址列表,每行一个 cidr,我想计算 cidr 的广播 ip 地址。我知道我可以使用带有 -b 选项的 ipcalc 来做到这一点,但 ipcalc 不会使用充满 cidr 的文本文件。那么,如何编写 bash 脚本来环绕 ipcal 命令。
这是一个应该可以解决问题的快速脚本:
示例文件ips.txt
$ cat ips.txt
192.168.0.1/24
192.167.0.1/24
此文件中 ips 的示例输出:
$ for i in $(cat ips.txt);do echo $i; ipcalc -b $i;done
192.168.0.1/24
BROADCAST=192.168.0.255
192.167.0.1/24
BROADCAST=192.167.0.255
如果不需要自己输出ip地址,去掉echo即可。
编辑
根据要求,这是一个只打印广播地址的版本:
$ for i in $(cat ips.txt);do bcaddr=$(ipcalc -b $i);echo ${bcaddr#BROADCAST=};done
192.168.0.255
192.167.0.255
我在文本文件中有一个 cidr 格式的 ip 地址列表,每行一个 cidr,我想计算 cidr 的广播 ip 地址。我知道我可以使用带有 -b 选项的 ipcalc 来做到这一点,但 ipcalc 不会使用充满 cidr 的文本文件。那么,如何编写 bash 脚本来环绕 ipcal 命令。
这是一个应该可以解决问题的快速脚本:
示例文件ips.txt
$ cat ips.txt
192.168.0.1/24
192.167.0.1/24
此文件中 ips 的示例输出:
$ for i in $(cat ips.txt);do echo $i; ipcalc -b $i;done
192.168.0.1/24
BROADCAST=192.168.0.255
192.167.0.1/24
BROADCAST=192.167.0.255
如果不需要自己输出ip地址,去掉echo即可。
编辑
根据要求,这是一个只打印广播地址的版本:
$ for i in $(cat ips.txt);do bcaddr=$(ipcalc -b $i);echo ${bcaddr#BROADCAST=};done
192.168.0.255
192.167.0.255