当前位置: > shell编程 >

使用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)
------分隔线----------------------------
栏目列表
推荐内容