Bash:For循环 - Ping整个IPV4地址空间

时间:2017-04-03 12:47:44

标签: bash for-loop nested permutation layer

如何使用bash for循环ping整个IPV4地址空间?
显然,它并不实用,但它仅仅是一个例子 问题不在于网络实用程序,而在于更多关于使用forbash循环进行分层以生成一组数字的所有排列。
如果这听起来像是格格不入,那么它就像试图通过在每个组合中进行冲击来强制访问控制键盘上的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

1 个答案:

答案 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