• 判断两个IP地址(ipv4)是否在同一个网段


    我们通常会遇到的ip地址是这样的:
    ip地址:192.168.227.205 子网掩码:255.255.255.0
    ip地址:192.168.226.202 子网掩码:255.255.255.0

    192.168.227.205转化为二进制:
    11000000  10101000   11100011   11001101
     255.255.255.0子网掩码转化为二进制:
     11111111    11111111   11111111     00000000
     两者进行与运算得到如下二进制值:
     11000000   10101000   11100011   00000000
     转为二进制得到网段:
     192.168.227.0
    
    192.168.226.202转化为二进制:
    11000000  10101000   11100010   11001010
     255.255.255.0子网掩码转化为二进制:
     11111111    11111111   11111111     00000000
     两者进行与运算得到如下二进制值:
    11000000   10101000   11100010   00000000
    转为二进制得到网段:
    192.168.226.0
    
    结果:
    很显然192.168.227.0和192.168.226.0不是一个网段,所以他们之间是ping不通的即不能相互通信
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    下面我们把子网掩码换成255.255.252.0再来判断下:
    ip地址:192.168.227.205 子网掩码:255.255.252.0
    ip地址:192.168.226.202 子网掩码:255.255.252.0

    192.168.227.205转化为二进制:
    11000000  10101000   11100011   11001101
     255.255.252.0子网掩码转化为二进制:
     11111111    11111111   11111100     00000000
     两者进行与运算得到如下二进制值:
     11000000   10101000   11100000   00000000
     转为二进制得到网段:
     192.168.224.0
    
    192.168.226.202转化为二进制:
    11000000  10101000   11100010   11001010
     255.255.255.0子网掩码转化为二进制:
     11111111    11111111   11111100     00000000
     两者进行与运算得到如下二进制值:
    11000000   10101000   11100000   00000000
    转为二进制得到网段:
    192.168.224.0
    
    结果:
    很显然这次他们是在同一个网段,所以他们之间是可以ping通的即能相互通信
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    结论:
    所以判断两个ip是不是在同一个网段要结合ip本身和子网掩码才能判断。
    通常情况下我们子网掩码是255.255.255.0(一个数字表示:24)的时候只要看前三段,如果相同即在同一个网段,子网掩码是255.255.252.0(一个数自表示:22),就不能看前三段了,需要通过上述方法计算一下,其他子网掩码,大家有兴趣也可以算一下。

    比如我这里使用NAT网络模式:
    主机ip地址设置成192.168.224.88,子网掩码是255.255.252.0,在虚拟机装系统时候,只要虚拟机系统ip的地址的前三段是192.168.224、192.168.225、192.168.226、192.168.227的(ip最后一段自己随便定义,0和255不能写,网关排除外),那么它们都是在同一个网段的,即可以相互通信,也可以访问外网!!!
    
    • 1
    • 2

    下面是我自己的IP设置截图,仅供参考:
    宿主机VMnet8 ipv4设置
    在这里插入图片描述
    在这里插入图片描述
    VMware虚拟机设置如下:
    在这里插入图片描述
    下面来测试192.168.224.x,192.168.225.x,192.168.226.x,192.168.227.x几个相互之间ping通测试:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Python实用脚本【二】
    svn迁移到git实际操作(亲测有效)
    货架穿梭车控制方案
    使用composer开发自己的扩展包
    Android开发基础——自定义控件
    SpringBoot启动流程源码分析
    Chromebook文件夹应用新功能
    Java-矩阵(自动导航-越过障碍)
    PON串口链接上网步骤
    python 案例
  • 原文地址:https://blog.csdn.net/u010080562/article/details/127585776