要了解网络掩码(子网掩码)得先了解什么是IP地址

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。(可以类比电话号码理解)

按照目前使用的IPv4的规定,对IP地址强行定义了一些保留地址,即:“网络地址”和“广播地址”。所谓“网络地址”就是指“主机号”全为“0”的IP地址,如:125.0.0.0(A类地址);而“广播地址”就是指“主机号”全为“255”时的IP地址,如:125.255.255.255(A类地址)。

ip地址又分为ABC类

1. A类IP地址

一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。

2. B类IP地址

一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。

3. C类IP地址

一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。

补:最高位

ipv4地址是由4字节32比特构成的,最高位就是二进制的最前面的位数

比如1.0.0.0为一个A类地址转换为二进制为

00000001 ,00000000 ,00000000   , 00000000

A类地址最高位就是0

网络掩码(子网掩码)

补:大多数情况下网络掩码和子网掩码可以画等号。

子网掩码,是用来标识两个IP地址是否同属于一个子网。

它也是一组32位长的二进制数值,其每一位上的数值代表不同含义:为“1”(ture)则代表该位是网络位;若为“0”则代表该位是主机位。和IP地址一样,人们同样使用“点式十进制”来表示子网掩码,如:255.255.0.0。

如果两个IP地址分别转化为二进制同一个子网掩码转化为二进制进行按位“与(and)”计算后得到相同的结果,即表明这两个IP地址处于同一个子网中。也就是说,使用这两个IP 地址的两台计算机就像同一单位中的不同部门,虽然它们的作用、功能、乃至地理位置都可能不尽相同,但是它们都处于同一个网络中。

计算网络掩码

一:知道网络前缀后缀

什么是前缀后缀呢

例:

最常用的子网掩码:255.255.255.0(Windows 默认掩码)

最常见的前缀长度:24(Android 手机默认的网络前缀)

前缀长度是如何得来呢

把子网掩码变为二进制,255.255.255.0

二进制 = 11111111 – 11111111 – 11111111 – 00000000

这里数一数有24个1,一个255(10进制)相当于8个1(2进制),这里3*8=24

所以二进制前面有多少个1则网络前缀就是多少,后缀就是数一下后面有多少个0

二:无须划分成子网的IP地址。

一般来说,此时计算该IP地址的子网掩码非常地简单,可按照其定义就可写出。例如:某个IP地址为12.26.43.0,无须再分割子网

做法:判断是A,B,C哪一类地址

这里我们可以知道它是一个A类地址,其子网掩码应该是255.0.0.0;若此IP地址是一个B类地址,则其子网掩码应该为255.255.0.0;如果它是C类地址,则其子网掩码为255.255.255.0。其它类推。

三:需要划分成子网的ip地址

在这种情况下,如何方便快捷地对于一个IP地址进行划分,准确地计算每个子网的掩码,方法的选择很重要。下面我介绍两种比较便捷的方法:

当然,在求子网掩码之前必须先清楚要划分的子网数目以及每个子网内的所需主机数目。

方法一:利用子网数来计算。

1.首先,将子网数目从十进制数转化为二进制数;

2.接着,统计由子网数目得到的二进制数的位数,设为N;

3.最后,先求出此IP地址对应的地址类别的子网掩码。再将求出的子网掩码的主机地址部分(也就是“主机号”)的前N位全部置1,这样即可得出该IP地址划分子网的子网掩码。

例如:需将B类IP地址167.194.0.0划分成28个子网:

1)(28)10=(11100)2;

2)此二进制的位数是5,则N=5;

3)此IP地址为B类地址,而B类地址的子网掩码是255.255.0.0,且B类地址的主机地址是后2位(即0-255.1-254)。于是将子网掩码255.255.0.0中的主机地址前5位全部置1

也就是说主机位置二进制初始为00000000这里将前面的五位变为1也就是变为11111000

,就可得到255.255.248.0,而这组数值就是划分成 28个子网的B类IP地址 167.194.0.0的子网掩码。

方法二:利用主机数来计算。

1.首先,将主机数目从十进制数转化为二进制数;

2.接着,如果主机数小于或等于254(注意:应去掉保留的两个IP地址),则统计由“第一步”中得到的二进制数的位数,设为N;如果主机数大于 254,则 N>8,也就是说主机地址将超过8位;

3.最后,使用255.255.255.255将此类IP地址的主机地址位数全部置为1,然后按照“从后向前”的顺序将N位全部置为0,所得到的数值即为所求的子网掩码值。

例如:需将B类IP地址167.194.0.0划分成若干个子网,每个子网内有主机500台:

1)(500)10=(111110100)2;

这里还有一种简便方法:不需要计算出500二进制准确数值,只需要找到最高位就可以知道有多少位数了具体做法如下:

512   256   128   64   32   16   8   4   2   1

         1

然后就不用计算后面的了

2)此二进制的位数是9,则N=9;

3)将该B类地址的子网掩码255. 255.0.0的主机地址全部置 1,得到255.255.255.255。然后再从后向前将后9位置0,可得:11111111. 11111111.11111110.00000000即255.255.254.0。这组数值就是划分成主机为500台的B类IP地址 167.194.0.0的子网掩码。

 

 

 

 

 

 

 

 

 

 

 

 

 

借鉴于———Du知道君9361e

原文地址:http://www.cnblogs.com/xxpanda/p/16848875.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性