2010-08-30 131 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