知道ip地址和子网掩码后可以算出: 



1、 网络地址



2、 广播地址



3、 地址范围



4、 本网有几台主机



 



例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0。算出网络地址、广播地址、地址范围、主机数。



 



一)分步骤计算 



 1) 将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址。 虚线前为网络地址,虚线后为主机地址。



java根据掩码位计算掩码 根据掩码计算ip地址范围_java根据掩码位计算掩码



 



 2)IP地址和子网掩码进行与运算,结果是网络地址:



java根据掩码位计算掩码 根据掩码计算ip地址范围_子网掩码_02



 



 3) 将上面的网络地址中的网络地址部分不变,主机地址变为全1,结果就是广播地址。



java根据掩码位计算掩码 根据掩码计算ip地址范围_IP_03



 



4) 地址范围就是含在本网段内的所有主机 



网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址,由此可以看出 



地址范围是: 网络地址+1 至 广播地址-1 



 



本例的网络范围是:192·168·100·1 至 192·168·100·254 



也就是说下面的地址都是一个网段的。 



192·168·100·1、192·168·100·2 。。。 192·168·100·20 。。。 192·168·100·111 。。。 192·168·100·254



 



5) 主机的数量 



主机的数量=2 二进制的主机位数-2



减2是因为主机不包括网络地址和广播地址。本例二进制的主机位数是8位。 



主机的数量=2 8-2=254



 



二)总体计算 



我们把上边的例子合起来计算一下过程如下:



java根据掩码位计算掩码 根据掩码计算ip地址范围_子网_04



 



例2: IP地址为128·36·199·3 子网掩码是255·255·240·0。算出网络地址、广播地址、地址范围、主机数。 



1) 将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址, 虚线前为网络地址,虚线后为主机地址。



java根据掩码位计算掩码 根据掩码计算ip地址范围_子网掩码_05



2)IP地址和子网掩码进行与运算,结果是网络地址



java根据掩码位计算掩码 根据掩码计算ip地址范围_IP_06



3)将运算结果中的网络地址不变,主机地址变为1,结果就是广播地址。



java根据掩码位计算掩码 根据掩码计算ip地址范围_IP_07



4) 地址范围就是含在本网段内的所有主机 



网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址,由此可以看出



地址范围是: 网络地址+1 至 广播地址-1 



 



本例的网络范围是:128·36·192·1 至 128·36·207·254 



 



5) 主机的数量 



主机的数量=2 二进制位数的主机-2



主机的数量=2 12-2=4094



 减2是因为主机不包括网络地址和广播地址。 



 



*********************



从上面两个例子可以看出不管子网掩码是标准的还是特殊的,计算网络地址、广播地址、地址数时只要把地址换算成二进制,然后从子网掩码处分清楚连续1以前的是网络地址,后是主机地址进行相应计算即可。

你一定对IP地址有所了解吧?我们知道在INTERNET中广泛使用的TCP/IP协议就是利用IP地址来区别不同的主机的。如果你曾经进行过TCP/IP协议设置,那么你一定会遇到子网掩码(Subnet mask)这一名词,那么你知道什么是子网掩码吗?它有什么作用呢?

我们知道IP地址是一个4字节(共32bit)的数字,被分为4段,每段8位,段与段之间用句点分隔。为了便于表达和识别,IP地址是以十进制形式表示的如210.52.207.2,每段所能表示的十进制数最大不超过255。IP地址由两部分组成,即网络号(Netgwork ID)和主机号(Host ID)。网络号标识的是Internet上的一个子网,而主机号标识的是子网中的某台主机。网际地址分解成两个域后,带来了一个重要的优点:IP数据包从网际上的一个网络到达另一个网络时,选择路径可以基于网络而不是主机。在大型的网际中,这一点优势特别明显,因为路由表中只存储网络信息而不是主机信息,这样可以大大简化路由表。IP地址根据网络号和主机号的数量而分为A、B、C三类:

A类IP地址:用7位(bit)来标识网络号,24位标识主机号,最前面一位为"0",即A类地址的第一段取值介于1~126之间。A类地址通常为大型网络而提供,全世界总共只有126个只可能的A类网络,每个A类网络最多可以连接16777214台主机。

B类IP地址:用14位来标识网络号,16位标识主机号,前面两位是"10"。B类地址的第一段取值介于128~191之间,第一段和第二段合在一起表示网络号。B类地址适用于中等规模的网络,全世界大约有16000个B类网络,每个B类网络最多可以连接65534台主机。

C类IP地址:用21位来标识网络号,8位标识主机号,前面三位是"110"。C类地址的第一段取值介于192~223之间,第一段、第二段、第三段合在一起表示网络号。最后一段标识网络上的主机号。C类地址适用于校园网等小型网络,每个C类网络最多可以有254台主机。

从上面的介绍我们知道,IP地址是以网络号和主机号来标示网络上的主机的,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway)才能互通。但这样的划分在某些情况下显得并十分不灵活。为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码。子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,这时只有在同一子网的计算机才能"直接"互通。那么怎样确定子网掩码呢?

前面讲到IP地址分网络号和主机号,要将一个网络划分为多个子网,因此网络号将要占用原来的主机位,如对于一个C类地址,它用21位来标识网络号,要将其划分为2个子网则需要占用1位原来的主机标识位。此时网络号位变为22位为主机标示变为7位。同理借用2个主机位则可以将一个C类网络划分为4个子网……那计算机是怎样才知道这一网络是否划分了子网呢?这就可以从子网掩码中看出。子网掩码和IP地址一样有32bit,确定子网掩码的方法是其与IP地址中标识网络号的所有对应位都用"1",而与主机号对应的位都是"0"。如分为2个子网的C类IP地址用22位来标识网络号,则其子网掩码为:11111111 11111111 11111111 10000000即255.255.255.128。于是我们可以知道,A类地址的缺省子网掩码为255.0.0.0,B类为255.255.0.0,C类为255.255.255.0。下表是C类地址子网划分及相关子网掩码:

子网位数 子网掩码 主机数 可用主机数

  1 255.255.255.128 128 126

  2 255.255.255.192 64 62

  3 255.255.255.224 32 30

  4 255.255.255.240 16 14

  5 255.255.255.248 8 6

  6 255.255.255.252 4 2

你可能注意到上表分了主机数和可用主机数两项,这是为什么呢?因为但当地址的所有主机位都为"0"时,这一地址为线路(或子网)地址,而当所有主机位都为"1"时为广播地址。

同时我们还可以使用可变长掩码(VLSM)就是指一个网络可以用不同的掩码进行配置。这样做的目的是为了使把一个网络划分成多个子网更加方便。在没有VLSM的情况下,一个网络只能使用一种子网掩码,这就限制了在给定的子网数目条件下主机的数目。例如你被分配了一个C类地址,网络号为192.168.10.0,而你现在需要将其划分为三个子网,其中一个子网有100台主机,其余的两个子网有50台主机。我们知道一个C类地址有254个可用地址,那么你如何选择子网掩码呢?从上表中我们发现,当我们在所有子网中都使用一个子网掩码时这一问题是无法解决的。此时VLSM就派上了用场,我们可以在100个主机的子网使用255.255.255.128这一掩码,它可以使用192.168.10.0到192.168.10.127这128个IP地址,其中可用主机号为126个。我们再把剩下的192.168.10.128到192.168.10.255这128个IP地址分成两个子网,子网掩码为255.255.255.192。其中一个子网的地址从192.168.10.128到192.168.10.191,另一子网的地址从192.168.10.192到192.168.10.255。子网掩码为255.255.255.192每个子网的可用主机地址都为62个,这样就达到了要求。可以看出合理使用子网掩码,可以使IP地址更加便于管理和控制。