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

2023-05-16

我们通常会遇到的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不通的即不能相互通信

下面我们把子网掩码换成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通的即能相互通信

结论:
所以判断两个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不能写,网关排除外),那么它们都是在同一个网段的,即可以相互通信,也可以访问外网!!!

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断两个IP地址(ipv4)是否在同一个网段 的相关文章

  • 制作window11系统U盘启动盘

    目录 前言1 U盘分区2 复制系统文件到U盘3 编辑bcd文件4 查看系统安装盘 xff08 U盘 xff09 前言 制作系统安装U盘需要使用到bootice这个工具 下载地址 xff0c 它主要是用来给U盘分区以及编辑bcd引导文件的 这
  • macOS Big Sur系统安装

    目录 前言系统安装U盘制作系统安装过程 前言 本次是在Vmware虚拟机用U盘启动盘来安装的macOS Big Sur 10 16版本 模仿实体机安装 xff0c 首先在虚拟机的macOS10 15系统中 xff0c 进入终端执行命令制作U
  • linux下安装nginx

    前言 nginx是一款高性能的 HTTP 和反向代理的web服务器 xff0c Nginx 可以作为静态页面的 web 服务器 xff0c 同时还支持 CGI 协议的动态语言 xff0c 但是不支持 java Java 程序只能通过与 to
  • js中获取当前点击的li标签以及li标签中a标签的id

    可以使用以下代码来获取当前点击的li标签的id xff1a document querySelectorAll 39 li 39 forEach function li li addEventListener 39 click 39 fun
  • linux下nginx的使用

    目录 前言1 nginx conf配置文件2 反向代理3 负载均衡4 动静分离5 高可用配置 前言 今天来说一下nginx的具体怎么使用 xff08 nginx安装参考这里 xff09 xff0c 主要包括反向代理 负载均衡 动静分离以及高
  • docker命令详解

    docker命令集 命令说明容器生命周期管理run创建一个新容器并运行start开启一个容器并使其在后台运行stop停止一个容器restart重启一个容器kill杀掉一个容器进程rm删除容器pause暂停容器unpause恢复暂停容器cre
  • redis常见问题与解决方案

    文章目录 缓存穿透 问题描述解决方案 缓存击穿 问题描述解决方案 缓存雪崩 问题描述解决方案 缓存穿透 问题描述 key 对应的数据在数据源并不存在 xff0c 每次针对此 key 的请求从缓存获取不到 xff0c 请求都会压到数据库 xf
  • jar包里面文件修改

    目录 前言1 解压jar包2 编辑要修改的配置文件3 重新生成jar包4 替换 前言 之前认为只要用解压软件打开包 xff0c 把里面要修改的配置文件提取出来编辑完成后直接替换掉jar包里原来的文件就好 xff0c 但实际项目中这样做很可能
  • javaweb项目字符集设置

    目录 前言1 编辑idea的VM Options属性文件2 idea的settings设置3 idea中tomcat设置4 tomcat字符集设置 前言 今天主要来讲一下在idea开发java web项目中怎么统一字符集 xff0c 乱码在
  • maven

    目录 1 maven安装1 1 maven下载1 2 配置maven环境变量1 3 settings配置文件 2 maven使用2 1 maven项目的层级结构2 2 maven工作方式2 3 maven生命周期2 4 maven命令2 5
  • docker之网络篇

    前言 刚开始学习docker的时侯 xff0c 启动容器时并没有指定网络 xff0c 使用的是默认的bridge xff0c 也就是桥接的模式 xff0c 这种模式下启动的容器间都是可以相互通信的 xff0c 所以使用起来也是特别的爽 xf
  • 虚拟机中Linux怎么与宿主机、外网通信

    目录 前言一 NAT模式1 设置宿主机2 设置VMware虚拟机3 对虚拟机Linux进行设置4 重启linux网络服务 二 桥接模式1 cmd命令行窗口查询IP地址2 设置Linux3 重启网卡服务 三 only host模式1 设置宿主
  • docker私有镜像仓库搭建

    目录 1 拉取registry镜像2 启动registry容器3 编辑daemon json文件4 重新加载docker配置5 访问私库web页面6 推送镜像到registry私库 1 拉取registry镜像 span class tok
  • docker企业级镜像仓库harbor搭建

    目录 1 下载harbor离线安装包2 解压harbor安装包3 编辑harbor配置文件4 编辑docker配置文件5 安装docker compose6 运行安装脚本7 访问harbor网页端8 登录harbor9 推送docker镜像
  • mysql中一张表的user_id替换成对应user_name保存

    在MySQL中将一个表中的user id替换成对应的user name xff0c 需要使用join语句将两个表连接起来 xff0c 然后使用update语句更新表中的数据 具体操作如下 xff1a 假设有两个表 xff1a 表A和表B x
  • Window10系统快捷方式小箭头的去除与恢复

    复制下面的代码 新建一个文本文件 粘贴后另存为 bat文件 xff0c 然后以管理员身份打开就可以去掉桌面上图标的小箭头或恢复桌面上图标的小箭头 去掉小箭头 span class token variable reg span span c
  • SUSE系统设置

    目录 1 防火墙设置2 配置ssh服务3 修改hostname4 配置ip dns 网关5 配置镜像源6 配置apache 服务器7 安装ping命令 1 防火墙设置 span class token variable SUSE11下 xf
  • mysql8.0多实例安装

    目录 1 下载mysql二进制安装包2 解压mysql二进制安装包3 创建mysql用户和用户组4 编辑my cnf文件5 初始化mysql实例6 启动mysql实例7 登录mysql实例 1 下载mysql二进制安装包 mysql8 0
  • oracle12c数据库安装(静默安装)

    目录 前言1 安装前准备工作2 安装数据库软件3 配置监听4 创建数据库 前言 本教程是在Linux下安装oracle12c数据库 xff0c 由于在有些情况下并没有图形化安装界面 xff0c 所以这里介绍在linux下通用的安装方式 xf
  • oracle19c数据库安装(静默安装)

    目录 前言1 安装前准备工作2 安装数据库3 配置监听4 创建数据库 前言 oracle19c数据库安装相对于oracle12c安装还是有些不一样的 xff0c 所以今天再来记录一下安装过程 xff0c 本次安装仍然是基于Oracle li

随机推荐

  • Apollo配置中心搭建

    目录 1 下载安装包和源码包2 创建数据库和表3 启动Apollo服务端4 访问Apollo客户端 1 下载安装包和源码包 下载地址 找到要安装的版本 xff0c 我这里选择的是1 3 0版本 下载好安装包后上传至linux的 usr lo
  • linux下搭建redis集群

    目录 1 准备三台服务器2 配置服务器3 安装redis4 配置集群5 测试集群 1 准备三台服务器 这是准备的三台服务器IP地址如下 xff0c 首先需要执行ping ip地址 xff0c 检查三台服务器之间是否能够相互通信 xff0c
  • linux下搭建redis哨兵

    1 准备三台Linux服务器 span class token variable 准备以下三台服务器 span span class token number 192 168 span span class token number 227
  • linux下安装elasticsearch

    目录 1 准备一台服务器2 下载elasticsearch安装包3 安装elasticsearch 1 准备一台服务器 这里使用的时redhat8 5 红帽新版的系统 xff0c 这里给的内存大小时4G 2 下载elasticsearch安
  • 用命令语句修改mysql某字段长度

    在MySQL中修改某个字段的长度 xff0c 需要使用ALTER TABLE语句 xff0c 具体操作如下 xff1a 假设要修改表A中的字段col1的长度为50 ALTER TABLE A MODIFY col1 VARCHAR 50 以
  • maven打普通包jar包(依赖一并打入)

    1 创建一个maven项目 这里可以看到新创建的maven项目 2 在pom xml添加项目需要的依赖 span class token generics span class token punctuation lt span depen
  • 纯Java项目批处理(打包方法二)

    1 创建一个普通的Java项目 主类 span class token keyword public span span class token keyword class span span class token class name
  • myCat搭建mysql的两主两从读写分离

    目录 前言1 搭建两主两从 xff08 主从复制 xff09 2 测试主从复制效果3 修改myCat配置文件4 启动myCat5 测试效果 前言 这里为了方便快速搭建我是使用docker容器完成的mysql实例 和使用在linux上安装的m
  • Red Hat Enterprise Linux9安装

    目录 前言1 启动iso镜像进入安装首页2 选择语言3 进入安装摘要界面4 选择安装目的地5 禁用KDUMP6 软件选择7 网络和主机名8 设置root用户密码9 开始安装10 重启11 登录系统12 挂载系统iso镜像13 配置本地镜像源
  • epel在线镜像源

    目录 前言阿里云镜像源腾讯镜像源华为镜像源清华大学镜像源中国科技大学镜像源 前言 此epel镜像源适用于红帽系列系统 xff0c 如Red Hat Enterprise CentOS AnoliOS Rocky Linux Almalinu
  • SUSE本地镜像源配置

    SUSE Enterprise Linux 11 12镜像源配置 mount dev sr0 mnt zypper ar file mnt local sles SUSE Enterprise Linux 15镜像源配置 先执行 mount
  • MyCat2搭建mysql主从分离

    前言 此次搭建MyCat2读写分离使用的Linux环境是Debian11 3 xff0c 使用的mysql版本是8 0 16 1 准备三台服务器 准备如下三台Debian服务器 xff0c 而且这三台服务器之间能够相互通信 xff0c 可以
  • Debian11安装redis报错解决方法

    1 报错需要安装C语言编译环境 执行apt install gcc 安装C语言编译环境 2 报错冲突 Conflicts 这里在执行apt install gcc命令后出现两gcc的版本 xff0c 这里执行apt install gcc
  • sqlserver在linux下安装

    前言 本次安装的sqlserver用的是sqlserver2017 linux环境是redhat Linux8 6 xff0c 本次采用是离线rpm安装 安装过程总体感觉比MySQL还要容易 xff0c 初步使用起来感觉和mysql差不多
  • DB2在Linux下静默安装

    目录 前言1 下载并上传db2压缩包到Linux2 检测db2安装环境3 安装db2数据库软件4 配置db2数据库系统用户5 创建数据库实例6 配置TCP IP通信服务7 配置数据库8 启动和关闭数据库实例9 修改权限10 数据库客户端和工
  • ubuntu12.04开启Framebuffer

    一 xff0e framebuffer概述 Framebuffer在Linux中是作为 设备 来实现的 xff0c 它是对图形硬件的一种抽象 xff0c 代表着显卡中的帧缓冲区 xff08 Framebuffer xff09 通过Frame
  • Redhat系列系统在线镜像源

    目录 前言Redhat7镜像源1 阿里云镜像源2 清华大学镜像源3 网易镜像源4 华为镜像源 Redhat8镜像源1 阿里云镜像源2 清华大学镜像源3 网易镜像源4 华为镜像源5 阿里云Rocky镜像源6 阿里云anolis镜像源 Redh
  • SuSE Enterprise linux安装mysql笔记

    目录 前言1 下载mysql二进制安装包2 解压MySQL安装包3 创建MySQL用户4 初始化mysql实例5 首次登录mysql6 修改登录密码 前言 本次安装MySQL的版本是8 0 30的二进制压缩包 xff0c 安装环境是SuSE
  • PostgresSql在linux下源码安装笔记

    目录 前言1 下载源码包并上传2 编译源码并安装3 本地登录PostgreSql4 客户端登录PostgreSql 前言 PostgreSql安装版本是14 5 xff0c 安装环境是Redhat Enterprise Linux serv
  • 判断两个IP地址(ipv4)是否在同一个网段

    我们通常会遇到的ip地址是这样的 xff1a ip地址 xff1a 192 168 227 205 子网掩码 xff1a 255 255 255 0 ip地址 xff1a 192 168 226 202 子网掩码 xff1a 255 255