其实这是一个关于划分超网/子网的问题,很多时候我们是被192.168.x.x这样数字迷惑了。如果想要正确的划分一个ip网络,首先要忘到192.168这样的数字,而从ip的本质着手,我们知道ipv4是由4个8位的二进制数字组成,共32位,表现形式为11111101.10010111.10100110.10101100,一个ip地址还需要一个子网掩码(submask)。ip地址可以分为两部分,一部分是网段号,一部分是主机号,子网掩码是用来区分网段号的。通常情况下ip网段分为5类:a,b,c,d,e。常用的就是a,b,c这3个网段,具体这3类网段如何分配各位可以查看相关的手册,这里就不多讲了。
下面我们先简单分析192.168.1.1/255.255.255.0这个ip。
ip: 1100000.10101000.00000001. 00000001
submask:1111111.11111111.11111111. 00000000
这样我们可以很明显的看出,凡是子网掩码标识为1的部分都是网段号,后面标识为0的都是主机号,在这个例子中,1100000.10101000.00000001是网段号,最后的00000001是主机号。在同一个网段中,主机号不同就可以互相访问(ip地址需要唯一性)。能拥有的主机数是 2的8次方-2 台,因为主机号有8位,所以是2的8次方,因为主机号不能全为0或者全为1,所以需要-2。
知道了一个ip是如何划分成两部分以后,我们就很容易的划分超网或者子网了,就以上例子来说明(192.168.1.5/20):
ip: 1100000.10101000.00000001.00000101(192.168.1.5)
submask: 1111111.11111111.11110000.00000000(255.255.240.0)
那么很明显这个是一个超网,借了第3段的后4位,那么其主机数应该是 2的12次方-2 台。
它的起始ip是:1100000.10101000.0000 0000.00000001(192.168.0.0)
1111111.11111111.1111 0000.00000000(255.255.240.0)
它的终止ip是:1100000.10101000.0000 1111.11111111(192.168.15.255)
1111111.11111111.1111 0000.00000000(255.255.240.0)
在这个ip的范围内,可以互相ping通,但是对于这么多1010大家有点头晕,所以我们需要把它换算成为十进制的数,这里给出一个简单的方法计算:
例如
1 1 0 1 0 1 1 1
128 64 32 16 8 4 2 1
其中有1的部分,就拿下面对应的数字相加就可以,这个8位我们就可以知道是128+64+16+4+2+1=215。
知道计算方法以后,我们划分子网或者超网都变的异常容易,如果各位有兴趣可以自己划分了试试,有条件的话还可以自己拿两台计算机相互试以下!但要记住,不要被x.x.x.x这样的十进制数所迷惑,遇到ip后先化成二进制再做计算。如果大家对此有什么问题或者意见,欢迎跟贴探讨。
本文转自 wwwzbx 51CTO博客,原文链接:http://blog.51cto.com/wwwzbx/4383,如需转载请自行联系原作者