判断两个ip 是否在同一网段中方法
所需条件:ip、子网掩码
ip地址:192.168.1.1 子网掩码:255.255.255.0 ip地址:192.168.2.1 子网掩码:255.255.255.0
将ip地址与子网掩码转化为二进制,进行与运算,然后转化为网络号
计算元素 | 对应二进制 |
---|
192.168.1.1 | 11000000 10101000 00000001 00000001 | 255.255.255.0 | 11111111 11111111 11111111 00000000 |
与运算结果:11000000 10101000 00000001 00000000 转换成网络号就是:192.168.1.0
计算元素 | 对应二进制 |
---|
192.168.2.1 | 11000000 10101000 00000010 00000001 | 255.255.255.0 | 11111111 11111111 11111111 00000000 |
与运算结果:11000000 10101000 00000010 00000000 转换成网络号就是:192.168.2.0 得出不在同一个网段
根据ip地址推算子网掩码
例如
假设监控网络中有600个点位,我们现在也不想把它划分vlan(实际项目中大部分是会划分vlan的),假设只想用一个大网段把这600个点位分配ip地址,如何设置ip地址,如何确实子网掩码
分析:首先我们知道600个点位,可以使用3个254个ip地址段来分配。 可以使用 ip段一:192.168.0.1——192.168.0.254 ip段二:192.168.1.1——192.168.1.254 ip段三:192.168.2.1——192.168.2.254 每个网段有254个ip地址,完全够600个点位用的。 那么问题来了,如果要使这三个ip段在同一个网段内,那么这个大网段共同的子网掩码是多少呢? 我们来分析下: 将ip地址192.168.0.1转换为二进制 11000000 10101000 00000000 00000001 将ip地址192.168.1.1转换为二进制 11000000 10101000 00000001 00000001 将ip地址192.168.2.1转换为二进制 11000000 10101000 00000010 00000001 转换成了二进制,可以看得出,三个ip段的二进制前面22位的是不变的,那么可以将他们表示成: ip段一:192.168.0.1/22 ip段二:192.168.1.1/22 ip段三:192.168.2.1/22 这种192.168.2.x/22形式的ip地址相信大家平时都见过,就是已经告诉了子网掩码了。 也就是说他们共同的子网掩码二进制前面22个都是1。 11111111 11111111 11111100 00000000 转换成十进制,那就是255.255.252.0,所以他们共同的子网掩码就是255.255.252.0。
参考:https://www.uguu.com/article-335221.html
|