使用awk将子网掩码转换成前缀表示的代码
时间:2014-09-10 21:37 来源:linux.it.net.cn 作者:it
使用awk将子网掩码转换成前缀表示,以下是完整代码,供参考:
复制代码代码如下:
#!/usr/bin/awk -f
{
num=gsub("255.","")
gsub(".0","")
mask=$0-0
for(i = 0;mask > 0;i++)
if (mask % 2^(7-i) == 0){
i++
break
}
else
mask -= 2^(7-i)
sum = 8*num + i
print sum
}
测试结果:
复制代码代码如下:
[root@station1 ~]# echo "224.0.0.0"|./netmask.awk
3
[root@station1 ~]# echo "255.128.0.0"|./netmask.awk
9
[root@station1 ~]# echo "255.192.0.0"|./netmask.awk
10
[root@station1 ~]# echo "255.255.0.0"|./netmask.awk
16
[root@station1 ~]# echo "255.255.192.0"|./netmask.awk
18
[root@station1 ~]# echo "255.255.255.254"|./netmask.awk
31
(责任编辑:IT)
使用awk将子网掩码转换成前缀表示,以下是完整代码,供参考:
复制代码代码如下:
#!/usr/bin/awk -f
{ num=gsub("255.","") gsub(".0","") mask=$0-0 for(i = 0;mask > 0;i++) if (mask % 2^(7-i) == 0){ i++ break } else mask -= 2^(7-i) sum = 8*num + i print sum }
测试结果:
复制代码代码如下:
[root@station1 ~]# echo "224.0.0.0"|./netmask.awk
(责任编辑:IT)3 [root@station1 ~]# echo "255.128.0.0"|./netmask.awk 9 [root@station1 ~]# echo "255.192.0.0"|./netmask.awk 10 [root@station1 ~]# echo "255.255.0.0"|./netmask.awk 16 [root@station1 ~]# echo "255.255.192.0"|./netmask.awk 18 [root@station1 ~]# echo "255.255.255.254"|./netmask.awk 31 |