-1

これは、私が必要としているものを推定するのが難しいものなので、我慢してください。このサブネット 10.4.x.0/28 があるとします。これは、同じように見える複数のサブネット間で繰り返されます。

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

これらのサブネットには、抽出する必要がある単一のアドレスがあり、常に現在のサブネットの +12 になります。すなわち

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

からすべてのサブネットをループするシェル スクリプトを作成するにはどうすればよいでしょうか。

10.4.0.0/2810.4.255.240各サブネットで単一のアドレスを取得するには ?

4

1 に答える 1

2

正確にどの形式が必要かを判断するのは難しいですが...

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

このような4096の値を持つ16行を与えます...

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 に答える