news 2026/6/9 18:35:38

判断两个IP是否属于同一子网_判断是否在同一个子网

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
判断两个IP是否属于同一子网_判断是否在同一个子网

判断两个IP地址是否属于同一个子网(网段)的方法

判断两个IPv4地址是否在同一个子网的核心原理是:将每个IP地址与子网掩码进行按位与(AND)运算,得到网络地址(网络号)。如果两个网络地址相同,则它们属于同一个子网;否则,不属于。

步骤详解
  1. 获取信息:需要两个IP地址和同一个子网掩码(通常两者使用相同的掩码)。

    • 子网掩码可以是点分十进制形式(如255.255.255.0)或CIDR前缀(如/24)。
  2. 转换为二进制(可选,手算时需要;程序中可直接用整数运算):

    • IP地址和子网掩码都是32位二进制数。
  3. 按位与(AND)运算

    • IP1 & 子网掩码 → 网络地址1
    • IP2 & 子网掩码 → 网络地址2
    • 规则:二进制位相同为1时结果为1,否则为0。
  4. 比较结果

    • 如果网络地址1 == 网络地址2,则在同一个子网。
示例1:同一子网
  • IP1: 192.168.1.10
  • IP2: 192.168.1.20
  • 子网掩码: 255.255.255.0(/24)

计算:

  • 192.168.1.10 & 255.255.255.0 = 192.168.1.0
  • 192.168.1.20 & 255.255.255.0 = 192.168.1.0
  • 结果相同 →同一子网
示例2:不同子网
  • IP1: 192.168.1.10
  • IP2: 192.168.2.20
  • 子网掩码: 255.255.255.0(/24)

计算:

  • 192.168.1.10 & 255.255.255.0 = 192.168.1.0
  • 192.168.2.20 & 255.255.255.0 = 192.168.2.0
  • 结果不同 →不同子网
示例3:更大子网
  • IP1: 10.0.0.1
  • IP2: 10.0.0.255
  • 子网掩码: 255.0.0.0(/8)

计算:

  • 两者 & 255.0.0.0 = 10.0.0.0
  • 结果相同 →同一子网
编程实现(Python示例)
importipaddressdefis_same_subnet(ip1:str,ip2:str,mask:str)->bool:"""mask可以是'255.255.255.0'或'24'"""try:network1=ipaddress.ip_network(f"{ip1}/{mask}",strict=False)network2=ipaddress.ip_network(f"{ip2}/{mask}",strict=False)returnnetwork1.network_address==network2.network_addressexceptValueError:returnFalse# IP或掩码无效# 测试print(is_same_subnet('192.168.1.10','192.168.1.20','24'))# Trueprint(is_same_subnet('192.168.1.10','192.168.2.20','24'))# False
注意事项
  • 子网掩码必须有效(二进制前缀全1,后缀全0)。
  • 网络地址和广播地址通常不可分配给主机,但判断子网时不影响。
  • 对于IPv6,原理类似,但使用128位地址。

这种方法是网络协议的标准方式,适用于路由判断和网络配置。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 19:24:38

转换wps字符串

LET(文本,SUBSTITUTE(D1,CHAR(10),","),长度,LEN(文本),结果,REDUCE("",SEQUENCE(长度),LAMBDA(累计值,i,LET(字符,MID(文本,i,1),编码,CODE(字符),IF(编码<128,累计值&字符,LET(最后一个字符,IF(累计值"","",RIGHT(累计值,1))…

作者头像 李华
网站建设 2026/6/9 1:00:31

Linux lsof命令查看Miniconda占用的端口资源

使用 lsof 精准排查 Miniconda 环境中的端口占用问题 在现代 AI 与数据科学开发中&#xff0c;Python 已经成为事实上的标准语言。从 Jupyter Notebook 到 PyTorch 训ing 脚本&#xff0c;再到基于 Flask 或 FastAPI 的模型服务部署&#xff0c;几乎每个环节都离不开 Python 生…

作者头像 李华
网站建设 2026/6/9 2:07:26

科研级Python环境搭建:Miniconda镜像确保实验结果可复现

科研级Python环境搭建&#xff1a;Miniconda镜像确保实验结果可复现 在人工智能和数据科学领域&#xff0c;一个令人沮丧的场景屡见不鲜&#xff1a;几个月前还能完美运行的实验代码&#xff0c;如今却在导入时抛出奇怪的错误——“module torch has no attribute utils.data&a…

作者头像 李华
网站建设 2026/6/9 1:44:34

使用cookiecutter生成Miniconda项目模板

使用 cookiecutter 生成 Miniconda 项目模板 在数据科学与机器学习团队中&#xff0c;一个常见的场景是&#xff1a;新成员入职第一天&#xff0c;被分配到一个 GitHub 仓库链接和一份“环境配置说明”文档。接下来的几小时甚至一整天&#xff0c;他们都在折腾 Python 版本、包…

作者头像 李华
网站建设 2026/6/9 1:34:17

同花顺红娘子大盘主图源码分享

{}N:9;M1:3;M2:3;红先锋5:(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;红先锋6:SMA(红先锋5,M1,1);红先锋7:SMA(红先锋6,M2,1);红先锋大盘资金:(红先锋6红先锋7)/2,colorred,LINETHICK2;咨询QQ:66686241,NODRAW,colorred;红先锋1:(31);红先锋2:(34);红先锋3:(3 * (SMA(((…

作者头像 李华
网站建设 2026/6/8 20:22:54

Docker restart policy确保Miniconda服务高可用

Docker Restart Policy 与 Miniconda 高可用环境的实践融合 在远程AI开发平台日益普及的今天&#xff0c;一个常见却令人头疼的问题是&#xff1a;服务器重启后&#xff0c;Jupyter Notebook打不开、SSH连不上&#xff0c;开发者只能干等运维手动恢复服务。更糟的是&#xff0c…

作者头像 李华