IP掩码:192.168.100.150/24 一共32位

11111111.11111111. 11111111.11111111 –>
255.255.255.255 32位掩码

11111111.11111111. 11111111.00000000 –> 255.255.255. 0 24位掩码

11111111.11111111. 11111111.11111100 –> 255.255.255.252 30位掩码

(32 – 掩码位) 的结果再2次方 =(主机位)

主机位 - 2 = PC可用的IP数量

IP&掩码 = 网关(网络地址,网段) 所以看两个IP是否同网段还需要 &掩码

一个IP:网络位+主机位=32位掩码。一个30位掩码(255.255.255.252),主机位2位 2的次方4 由每个网段中有两个IP不能分配给主机(第一个网络地址和最后一个广播地址),所以可以分配的IP为2个。

==============================================================

子网掩码不能单独存在,他必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分为
网络地址和主机地址两部分。

==============================================================

在实际项目中,我们通常会遇到这样的ip地址:

ip地址:192.168.1.1 子网掩码:255.255.255.0

ip地址:192.168.1.2 子网掩码:255.255.255.0

我们可以直接的判断,他们是同属于一个网段的ip地址。

那么对于下面这样的呢?

ip地址:192.168.1.1 子网掩码:255.255.255.0
  
ip地址:192.168.1.2 子网掩码:255.255.0.0

这两个ip地址虽然在不看掩码的情况下,比较像,但他们并不是同一个网段内的。
这个可以从子网掩码来判断,

192.168.1.1 255.255.255.0是属于192.168.1.0网段
而192.168.1.2 255.255.0.0是属于192.168.0.0网段

要想判断两个ip地址是不是在同一个网段,只需将ip地址与子网掩码做与运算,如果得出的结果一样,则这两个ip地址是同一个子网当中!
详细计算:

将ip地址192.168.1.1转换为二进制

11000000 10101000 00000001 00000001

11111111.11111111.11111111.00000000 - > 255.255.255.0

相&运算:

11000000 10101000 00000001 00000000

转换成网络号就是:192.168.1.0

===
将ip地址192.168.2.1转换为二进制

11000000 10101000 00000010 00000001
11111111.11111111.11111111.00000000 - > 255.255.255.0

相&运算:
000000 10101000 00000010 00000000
转换成网络号就是:192.168.2.0 所以不是一个网段

====================================================================

30位掩码为255.255.255.252.

将202.101.32.34换算成32位二进制,将255.255.255.252换算成32位二进制,然后进行与运算可知该网络的取值范围。与运算的特点是有0便为0,全1才为1.与运算的结果是该网络的网络地址。

1100 1010 202
1111 1111 255
1100 1010 与运算的结果=202

0110 0101 101
1111 1111 255
0110 0101 与运算的结果=101

0010 0000 32
1111 1111 255
0010 0000 与运算的结果=32

0010 0010 34
1111 1100 252

0010 0000 与运算的结果=32

解析:
最后得到的是这个IP的网络地址是202.101.32.32 。因为该网络的网络位为30位。所以主机位为2位。该网络的IP数量是2的2次方。即4个IP。
202.101.32.32 、202.101.32.33、202.101.32.34、202.101.32.35 。
因为202.101.32.32是该网络的网络地址,202.101.32.35是该网络的广播地址,是不能给主机使用的。所以,能给主机分配的IP只有2个,即202.101.32.33和202.101.32.34

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐