首页 > 代码库 > 已知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、子网掩码,求网络位、主机位、广播地址