2010-08-30 119 views
2

相關的ksh腳本以下問題shell腳本+計算網絡IP

如何根據NETMASK & IP ADDRES計算網絡IP

,如果有一些現成的shell腳本來計算網絡IP

例如

NETMASK=255.255.255.0 
    IP=172.18.20.10 


    then NETWORK IP should be 172.18.20.0 

利迪婭

回答

2

試試這個:

#!/bin/ksh 
saveIFS=$IFS 
IFS="." 
ip=($1) 
mask=($2) 
for i in {0..3} 
do 
    ((result[i] = ip[i] & mask[i])) 
done 
echo "${result[*]}" 
IFS=$saveIFS 

例子:

$ ./netip.ksh 172.18.20.10 255.255.255.0 
172.18.20.0 
+0

丹尼斯,你有沒有測試這個腳本? ,我需要確定這個腳本已經過測試,因爲我需要在關鍵系統上使用它 – lidia 2010-08-31 11:49:12

+1

@lidia:當然,我確實,但你也應該這樣做。 *注意力充沛* - 永遠。一件顯而易見的事:它不驗證輸入。例如,您可以輸入一個IP地址或掩碼,其八位字節大於255或多於或少於4個八位字節或非數字字符。 – 2010-08-31 14:14:19

+0

也將在Bash工作。 – 2010-09-02 19:59:50