You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP判断两个IP CIDR是否处于同一子网?

判断两个IP CIDR是否属于同一子网的方法

核心逻辑

判断两个CIDR是否同子网,本质是计算每个CIDR对应的网络地址,若网络地址完全相同则属于同一子网。注意:如果两个CIDR的前缀长度(/后面的数字)不同,即便IP范围有重叠,也不属于同一子网——因为二者的子网划分粒度不一样。

具体操作步骤(以示例:192.168.1.10/24 和 192.168.10.130/24 为例)

1. 确定子网掩码

前缀长度/24对应的IPv4子网掩码是255.255.255.0,这表示前24位是网络位,后8位是主机位。

2. 计算每个CIDR的网络地址

网络地址的计算规则是:IP地址 与 子网掩码 进行按位与运算。

计算192.168.1.10/24的网络地址:

  • 把IP转二进制:11000000.10101000.00000001.00001010
  • 把掩码转二进制:11111111.11111111.11111111.00000000
  • 按位与运算结果:11000000.10101000.00000001.00000000 → 转十进制为192.168.1.0

计算192.168.10.130/24的网络地址:

  • IP转二进制:11000000.10101000.00001010.10000010
  • 和掩码按位与结果:11000000.10101000.00001010.00000000 → 转十进制为192.168.10.0

3. 对比网络地址

两个网络地址192.168.1.0和192.168.10.0不相同,因此这两个CIDR不属于同一子网。

快速验证的命令(Linux/macOS)

可以用ipcalc工具一键计算网络地址,省去手动转二进制的麻烦:

  • 执行ipcalc 192.168.1.10/24,查看输出中的Network字段
  • 执行ipcalc 192.168.10.130/24,对比两个Network字段是否一致即可

内容的提问来源于stack exchange,提问作者Abhishek Prajapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:18:17