2013-10-18 38 views
-1

這是一個難以推斷我需要的東西,所以請耐心等待。比方說,我們有這個子網10.4.x.0/28遍歷自身跨越多個子網看起來是一樣的,即Bash Shell腳本來計算子網中的地址

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/28寫一個shell腳本來回路10.4.255.240讓每個子網中的一個地址?

回答

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