您的位置:首页 > 其它

计算子网地址和广播地址的简单公式

2009-07-30 16:39 519 查看
在子网掩码(subnet mask)中,将掩码的一位设成1表示IP地址对应的位属于网络地址部分,设成0表示IP地址对应的位属于主机地址部分。而路由器使用的通配符掩码(ildcard-mask,又称反向子网掩码,反掩码),与源地址或目标地址一起来分辨匹配的地址范围,它跟子网掩码刚好相反。在访问列表中将通配符掩码中的一位设成1表示IP地址中对应的位既可以是1又可以是0。有时,可将其称作“无关”位,因为路由器在判断是否匹配时并不关心它们。掩码位设成0则表示IP地址中相对应的位必须精确匹配。

借用通配符掩码,能简便地计算子网的开始地址、结束地址(或称 子网地址、广播地址)。

举例,如何求网段 10.11.22.33/21 (或10.11.22.33/255.255.248.0)的开始地址、结束地址?

第1步:可以把IP地址、子网掩码、CIDR、通配符掩码 都理解成十进制的数值(见以下对应表。十进制数与IP间的转换函数,在我的另一文章http://blog.csdn.net/tsxnb/archive/2009/06/23/4291710.aspx提供了2个函数:Str2Ip和Ip2Str)。

与/21相应的子网掩码是255.255.248.0,通配符掩码(反掩码)就是0.0.7.255(由255.255.255.255-255.255.248.0所得)。
子网掩码255.255.248.0换算成十进制:255*256*256*256+255*256*256+248 *256+0=4294965248
CIRD /21 换算成十进制: 2^32-2^(32-21) = 4294965248 其中^指次方。

第2步:网段的开始地址(子网地址) = 主机地址 AND 子网掩码
(10.11.22.33) and (255.255.248.0)=168498721 and 4294965248=168497152 即10.11.16.0

第3步:网段的结束地址(广播地址) = 网段的开始地址(子网地址) + 通配符掩码
(10.11.16.0) + (255.255.255.255-255.255.248.0)=168497152+2047=168499199 即10.11.23.255

因此,10.11.22.33/21 网段的子网地址和广播地址分别是10.11.16.0、10.11.23.255,子网可用的IP地址在这个范围之内。

对应表:

CIDR值 换算公式十进制子网掩码(subnet mask)通配符掩码(wildcard mask)
/322^32-2^(32-32)4294967295255.255.255.2550.0.0.0
/312^32-2^(32-31)4294967294255.255.255.2540.0.0.1
/302^32-2^(32-30)4294967292255.255.255.2520.0.0.3
/292^32-2^(32-29)4294967288255.255.255.2480.0.0.7
/282^32-2^(32-28)4294967280255.255.255.2400.0.0.15
/272^32-2^(32-27)4294967264255.255.255.2240.0.0.31
/262^32-2^(32-26)4294967232255.255.255.1920.0.0.63
/252^32-2^(32-25)4294967168255.255.255.1280.0.0.127
/242^32-2^(32-24)4294967040255.255.255.00.0.0.255
/232^32-2^(32-23)4294966784255.255.254.00.0.1.255
/222^32-2^(32-22)4294966272255.255.252.00.0.3.255
/212^32-2^(32-21)4294965248255.255.248.00.0.7.255
/202^32-2^(32-20)4294963200255.255.240.00.0.15.255
/192^32-2^(32-19)4294959104255.255.224.00.0.31.255
/182^32-2^(32-18)4294950912255.255.192.00.0.63.255
/172^32-2^(32-17)4294934528255.255.128.00.0.127.255
/162^32-2^(32-16)4294901760255.255.0.00.0.255.255
/152^32-2^(32-15)4294836224255.254.0.00.1.255.255
/142^32-2^(32-14)4294705152255.252.0.00.3.255.255
/132^32-2^(32-13)4294443008255.248.0.00.7.255.255
/122^32-2^(32-12)4293918720255.240.0.00.15.255.255
/112^32-2^(32-11)4292870144255.224.0.00.31.255.255
/102^32-2^(32-10)4290772992255.192.0.00.63.255.255
/92^32-2^(32-9)4286578688255.128.0.00.127.255.255
/82^32-2^(32-8)4278190080255.0.0.00.255.255.255
/72^32-2^(32-7)4261412864254.0.0.01.255.255.255
/62^32-2^(32-6)4227858432252.0.0.03.255.255.255
/52^32-2^(32-5)4160749568248.0.0.07.255.255.255
/42^32-2^(32-4)4026531840240.0.0.015.255.255.255
/32^32-2^(32-3)3758096384224.0.0.031.255.255.255
/22^32-2^(32-2)3221225472192.0.0.063.255.255.255
/12^32-2^(32-1)2147483648128.0.0.0127.255.255.255
/02^32-2^(32-0)00.0.0.0255.255.255.255
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: