首页/网络/IP 与子网速查/判断两个 IP 是否同网段
本包目录(177 条)
掩码与 CIDR 速算50 条
私网与特殊地址45 条子网划分方法与例题40 条IPv6 与下一代网络42 条

判断两个 IP 是否同网段

核心是 AND 运算:两个 IP 分别与同一掩码按位与,结果相同则同网段;工程上常用于判断网关与地址、两台服务器是否二层直连。

IP 与子网速查网络更新于 2026-10-12
方法IP1 AND 掩码 == IP2 AND 掩码 ?
例(同段)192.168.1.10/25 与 192.168.1.60/25 都在 192.168.1.0/25
例(不同段)192.168.1.10/25 在 0/25,192.168.1.130/25 在 128/25

Python 一行判断

Python 一行判断
import ipaddress as ip
ip.ip_address('192.168.1.10') in ip.ip_network('192.168.1.0/25')   # True
ip.ip_address('192.168.1.130') in ip.ip_network('192.168.1.0/25')  # False

路由表视角

路由表视角
ip route get 192.168.1.130
# 192.168.1.130 dev eth0 src 192.168.1.10  ← 同段直连(经由本机接口)
/25 的边界在 .128:10 与 60 同段、10 与 130 不同段。判断前先确认掩码,而不是只看前三段是否相同。

易错点

  • 只看前三个字节就断言同网段:10.0.1.1 与 10.0.2.1 只有在 /16 下才同段
  • 忽略 VLSM 环境不同部门可能采用不同掩码

数据来源与参考

  • RFC 4632(CIDR)
  • RFC 1122(主机要求)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌