如何使用bash
for
循环ping整个IPV4地址空间?
显然,它并不实用,但它仅仅是一个例子
问题不在于网络实用程序,而在于更多关于使用for
对bash
循环进行分层以生成一组数字的所有排列。
如果这听起来像是格格不入,那么它就像试图通过在每个组合中进行冲击来强制访问控制键盘上的4位数PIN码一样; 按顺序; 从 0000 到 9999 。
我以为会这样做:
for x in {0..255};
do
ping -c1 $x.$x.$x.$x;
done
但不是单独运行每个八位字节,而是像这样:
0.0.0的 0 即可。; 0.0.0的 1 即可。; 0.0.0的 2 即可。; →255.255.255.25 3 ; 255.255.255.25的 4 ; 255.255.255.25的 5
看起来更像这样:
0 的 0 0 0 即可。。。;的 1 1 1 1 即可。。。;的 2 2 2 2 即可。。。; →25 3 .25 3 .25 3 .25 3 ; 25的 4 0.25的 4 0.25的 4 0.25的 4 ; 25的 5 0.25的 5 0.25的 5 0.25的 5
答案 0 :(得分:2)
你需要制作4个嵌套循环,如下所示:
for i in {0..255}
do
for j in {0..255}
do
for k in {0..255}
do
for l in {0..255}
do
ping -c1 $i.$j.$k.$l
done
done
done
done