首页 > 代码库 > 已知IP、子网掩码,求网络位、主机位、广播地址
已知IP、子网掩码,求网络位、主机位、广播地址
前 言
本文档是简单介了逻辑算法、以及如何在已知IP地址和子网掩码的情况下计算网络位、主机位以及广播地址。所有步骤远的采用最原始的二进制方式,直击原理,请仔细阅读。
1、逻辑算法
在计算网络位、主机地址、广播地址时,会使用到逻辑与运算和逻辑或运算,所以了解其算法是必要的。详细章节请百度,这里只做简单介绍。
&&是逻辑与运算符,|| 是逻辑或运算符
逻辑与运算:当两个二进制数1和0做逻辑与运算时,全为真(1)即结果为真(1),一个为假即全为假(0)
逻辑或运算:当两个二进制数1和0做逻辑或运算时,全为假(0)即结果为假(0),一个为真即全为真(1)
2、已知IP和子网掩码,求网络位、主机位、广播地址:
I P 地址:121.40.81.200
子网掩码: 255.255.252.0
2.1、先把IP地址和子网掩码转换成二进制
I P 地址:121.40.81.200 转换二进制 01111001.00101000.01010001.11001000
子网掩码:255.255.252.0 转换二进制 11111111.11111111.11111100.00000000
2.2、求网络位
二进制IP地址和二进制子网掩码进行【逻辑与运算】得出网络位
二进制I P地址:01111001.00101000.01010001.11001000
二进制子网掩码:11111111.11111111.11111100.00000000
逻辑与运算后结果是:01111001.00101000.01010000.00000000
将结果转换成十进制:121.40.80.0
网络位是:121.40.80.0
2.3、求广播地址
反转后的子网掩码和二进制IP地址做【逻辑或运算】得出广播地址
反转前子网掩码:11111111.11111111.11111100.00000000
反转后子网掩码:00000000.00000000.00000011.11111111(计算广播地址时必须反转掩码)
二进制I P地址:01111001.00101000.01010001.11001000
逻辑或运算后结果是:01111001.00101000.01010011.11111111
将结果转换成十进制:192.168.83.255
广播地址是:192.168.83.255
2.4、求主机位
反转前子网掩码:11111111.11111111.11111100.00000000
反转后子网掩码:00000000.00000000.00000011.11111111(反转后的子网掩码就是主机位)
去除多余的0:11111111
转换成10进制:1023 + 1 (因为二进制和IP都是从0计算的,0也要算一个IP,所以 + 1)
主机位是:1024,此IP段可容纳1024个主机
2.5、最终结果
I P 地址:121.40.81.200 二进制IP地址:01111001.00101000.01010001.11001000
子网掩码: 255.255.252.0 二进制子网掩码:11111111.11111111.11111100.00000000
网络位是:121.40.80.0 二进制网络位:01111001.00101000.01010000.00000000
广播地址:121.40.83.255 二进制广播地址:01111001.00101000.01010011.11111111
主机位是:0.0.3.255 二制制主机位:00000000.00000000.00000011.11111111(一共可容纳1023+1台主机)
它的网段:121.40.80.0 至 121.40.83.255
附录、
3、IP地址是什么?
IP地址是英语:Internet Protocol Address的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),但在日常应用中,都会被转化成10进制来表示。
例:100.4.5.6,实际上是32位二进制数(01100100.00000100.00000101.00000110)。
4、子网掩码是什么?
子网掩码(英语:subnet mask 缩写)又叫网络掩码、地址掩码、子网络遮罩。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。如果不指定,就不知道哪些位是网络号、哪些是主机号,以及广播地址。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
例:255.255.252.0 实际上是32位二进制数(11111111.11111111.11111100.00000000)
5、网段是什么?
网段,就是一段一段的网络。网段一般指一个计算机网络中使用同一物理层设备直接通讯(ARP)的那些IP的统称,称为网段。例:192.168.1.118/255.255.255.0 它的网段是 192.168.1.0 - 192.168.1.255 ,该网段内的IP直接通讯(通过ARP通讯),不需要网关的转发。
6、广播地址是什么?
广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。
7、主机位(号)和网络位(号)是什么?
主机位是子网掩码或子网掩码的反转。由1和0组成,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
本文出自 “运维开发” 博客,请务必保留此出处http://linuxserver.blog.51cto.com/1854325/1602542
已知IP、子网掩码,求网络位、主机位、广播地址