回答本领域问题!
主机判断目的IP地址是否和自己在同一个网段,是通过IP地址和掩码来进行的!
任何一台网络主机,要是配置IP地址,则它必须有有一个掩码与之相对应,否则是不让进行配置的,例如你的电脑,你修改IP地址的时候,如果不加掩码,它就会有错误提醒,如下图:
只有正确的配置了掩码地址,才会让你点击确认:
既然我们知道,任何一个主机IP必须要有一个掩码与之相对应,那我们就可以开始下面子网划分的内容了。等掌握子网划分的原理,也就能轻松的判断两个IP地址是否在同一个网段了。
子网划分
我曾经在头条上写过一篇详细的文章,就是介绍子网划分的,有兴趣可以关注我的头条号进行查看,今天就把简单的原理来说一下。
对于划分子网来说,你要明白IP地址会被分为3个部分,分别是:network、subnet、host,如下图所示:
划分子网的本质是缩短host的长度,把host的一部分拿出来作为subnet,所以相当于classful的网络来说,划分子网会导致IP地址变小。
而我们对于每一个subnet来说,它都有一个网络ID和一个广播IP,我们需要了解它们。
网络ID
网络ID:用来标识一个唯一的网段,所有在同一个网段上的主机都有相同的网络ID。
网络ID可以通过如下的公式计算,我们随便以一个地址来举例:192.168.1.72 255.255.255.240
第一步把IP和掩码的最后变化位化为二进制:
然后把它们进行相与,就得到了网络ID
转换为十进制为192.168.1.64
这样就可以得到网络ID了。
广播IP地址
任何网段都有一个广播IP地址,用来给这个所有网段的主机发送信息,并且同一个网段的主机收到这个广播IP,都要处理。
广播IP的计算和网络ID的计算比较相似,就是把所的主机位变为1,例如下图最后一个:
转换为十进制为192.168.1.79,这就是192.168.1.64 255.255.255.240这个IP对于的广播地址。
判断是否在同一个网段
我们上面花了那么大的力气,计算网段ID和广播IP,最主要的目的就是要用它们来计算有些的主机IP。
对于任何一个IP地址来说,去除网段ID和广播IP以后,剩余的IP就称为可用的主机IP,这些IP都在同一网段。
拿上面的例子192.168.1.72 255.255.255.240来说,去除192.168.1.64这个网络ID和广播IP 192.168.1.79,剩下的192.168.1.65-78 都是在同一个网段的,收到所有在这个范围内的目的IP地址,都认为是同一个网段的。
总结
最后来做一个简单的总结,我们可以看出,看到目的IP是不是和自己在同一个网段,需要经过如下的步骤
步骤1:找个主机的IP和其对应的掩码(必不可少)
步骤2:将IP和掩码都化为二进制
步骤3:相与操作得出网络ID
步骤4:将主机位都置为1,得到广播IP
步骤5:去除网络ID和广播IP,剩下的就是都在同一个网段里的了
各位看完上面的描述,应该明白了吧?如果还有不明白的,欢迎关注我的头条号,里面有关于子网划分更详细的描述,并且提供更简洁的方法来计算主机位!