-1

这很难推断出我需要什么,所以请耐心等待。假设我们有这个子网 10.4.x.0/28,它在多个看起来相同的子网中迭代,即

10.4.0.0/28
10.4.0.16/28
10.4.0.32/28  etc...

我们需要在这些子网中提取一个地址,该地址始终是当前子网的 +12。IE

10.4.0.0/28  ->  10.4.0.12
10.4.0.16/28  -> 10.4.0.28
10.4.0.32/28  ->  10.4.0.44

我将如何编写一个 shell 脚本来遍历所有子网

10.4.0.0/28 获取10.4.255.240每个子网中的单个地址?

4

1 回答 1

2

很难说出你到底想要什么格式,但是......

for I in $(seq 12 16 256); do echo 10.4.{0..255}.$I; done

像这样给出 16 行 4096 个值...

10.4.0.12 10.4.1.12 10.4.2.12 10.4.3.12 10.4.4.12 10.4.5.12 10.4.6.12 10.4.7.12 10.4.8.12 10.4.9.12 10.4.10.12 10.4.11.12 10.4.12.12 10.4.13.12 10.4.14.12 10.4.15.12 10.4.16.12 10.4.17.12 ...
10.4.0.28 10.4.1.28 10.4.2.28 10.4.3.28 10.4.4.28 10.4.5.28 10.4.6.28 10.4.7.28 10.4.8.28 10.4.9.28 10.4.10.28 10.4.11.28 10.4.12.28 10.4.13.28 10.4.14.28 10.4.15.28 10.4.16.28 10.4.17.28 ...
[...]
10.4.235.252 10.4.236.252 10.4.237.252 10.4.238.252 10.4.239.252 10.4.240.252 10.4.241.252 10.4.242.252 10.4.243.252 10.4.244.252 10.4.245.252 10.4.246.252 10.4.247.252 10.4.248.252 10.4.249.252 10.4.250.252 10.4.251.252 10.4.252.252 10.4.253.252 10.4.254.252 10.4.255.252

如果您想即时更改顶级地址,您可以创建一个函数...

iterateIP(){
     for I in $(seq 12 16 256); do echo $1.{0..255}.$I; done 
}

并像这样调用:

iterateIP 10.4
于 2013-10-18T18:19:25.997 回答