CIDR的计算比较简单,比如10.0.0.0/24,掩码24,前三个8位不变,最后一个8为0~255,也就是10.0.0.0~10.0.0.255
稍微IP段再大一点10.0.0.0/20,掩码20,前两个8位不变,第三个8位前4位不变,后两个8位换成二进制也就是
00000000 00000000 ~ 00001111 11111111
换算一下也就是10.0.0.0~10.0.15.255,包含有4096个IP地址
Linux下有一个简单的计算工具,名字就叫netmask,用apt或者yun安装即可,用起来更十分简单
lihui@2015:~$ netmask -r 10.0.0.0/20 10.0.0.0-10.0.15.255 (4096) lihui@2015:~$ netmask -c 10.0.0.0~10.0.15.255 ^C lihui@2015:~$ netmask -c 10.0.0.0:10.0.15.255 10.0.0.0/20 lihui@2015:~$ netmask -b 10.0.15.255 00001010 00000000 00001111 11111111 / 11111111 11111111 11111111 11111111
更多的用法可以直接找man
Code控们,可以搜索下各种版本的转换脚本,java,python,perl都有
http://www.cnblogs.com/diyunpeng/p/3456784.html