首页/网络/IP 与子网速查/求下一个子网与邻块速算
子网划分方法与例题40 条

求下一个子网与邻块速算

下一个子网 = 当前网络地址 + 块大小;每到 /24 边界(第三段)需进位检查。批量列块用程序最稳。

IP 与子网速查网络更新于 2026-10-13

下一个子网怎么算

求相邻子网的方法只有一步:当前网络地址加上块大小,就是下一个子网的网络地址;上一块减去块大小,就是前一个子网的网络地址。需要注意的是跨段进位:当末段已经取到 256 减去块大小的位置时,再加一次会进位到下一段的低位,例如 192.168.1.192/26 的下一个是 192.168.2.0/26 而不是 192.168.1.256/26。

基本信息

基本公式下一块网络地址 = 当前网络地址 + 块大小
反向公式上一块网络地址 = 当前网络地址 − 块大小
块大小256 减去末段掩码值,例如 /26 是 64
进位规则末段超出 255 时向上一段进位,第三段超过 255 时向第二段进位
边界情形跨 /24、/16、/8 边界时需逐段进位检查
可靠做法用程序批量生成清单,避免人工进位出错

批量列块

批量列块
# 列出 /24 切成 /27 的全部八块
python -c "import ipaddress as ip; [print(n) for n in ip.ip_network('192.168.1.0/24').subnets(new_prefix=27)]"
# 求某个块的相邻块
python - <<'PY'
import ipaddress as ip
n = ip.ip_network('192.168.1.192/26')
print('本块', n, '广播', n.broadcast_address)
print('下一块', ip.ip_network((int(n.network_address) + n.num_addresses, 26)))
PY

进位示例(/26 块大小 64)

当前块下一块说明
192.168.1.0/26192.168.1.64/26同段内正常递增
192.168.1.192/26192.168.2.0/26末段溢出,第三段进位
192.168.255.192/26192.169.0.0/26第三段溢出,第二段进位
10.255.255.192/2611.0.0.0/26第二段溢出,第一段进位

典型使用场景

  • 写 ACL 或防火墙规则时按块推算范围,尤其是排除特定子网时需要精确边界
  • 连续分配新网段:从上一段末尾往后接,保证不留空洞,便于汇总
  • 核对设备配置与规划表:逐块比对是否与规划顺序一致,快速发现被占用的位置
  • 生成一次性脚本批量配置网段,用程序算好每块边界再填入模板
  • 排查网段重叠:把两份清单按块排序,相邻块出现覆盖即说明规划冲突

实用建议

  • 把“最后一块”的下一个地址单独验证,这是最易漏进位的位置
  • 对不同掩码分别记忆块大小:/25 是 128,/26 是 64,/27 是 32,/28 是 16
  • 需要整段清单时不要手工推,直接用程序生成,一次生成比逐块推算更可靠
  • 跨大类边界(例如 192.168 段末尾)尤其注意,规划时尽量不把网段排到这类边界
  • 生成的清单留存到变更文档中,日后核对时可作为基线
相邻块的两个关系可以用来交叉验证:上一块的广播地址加 1 必须等于下一块的网络地址,出现缺口说明中间有遗漏或多算。

易错点

  • 最后一块之后忘记进位:192.168.1.192/26 后面直接写 192.168.1.256/26,这是非法地址
  • 块大小算错导致整条清单偏移:块大小错了,后续每一块的起点全部错位
  • 只算末段不考虑跨段:第三段到 255 之后必须进位到第二段,跨边界时最容易出错
  • 手工连续推算多条:一次推十几个块出错概率很高,用程序生成并抽查几条更稳

数据来源与参考

  • RFC 950(子网划分)
  • Python ipaddress 文档(subnets)

相关工具

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