题干与答案
题目:172.16.34.211 配上 /20 掩码,属于哪个子网?答案是 172.16.32.0/20,广播地址 172.16.47.255,可用范围 172.16.32.1 到 172.16.47.254,共 4094 个可用地址。这道题的关键在于:块大小不在第 4 段,而在第 3 段。
解题步骤
/20 的点分掩码是 255.255.240.0,掩码里第一个不是 255 的段是第 3 段(240),所以块大小 256-240=16 作用在第 3 段。把第 3 段的 34 按 16 向下取整:16 的倍数是 0、16、32、48,34 落在 32 与 48 之间,取 32。于是网络地址是 172.16.32.0,广播的第 3 段是 32+16-1=47、第 4 段为 255。
最容易错的地方
最常见的错误是在第 4 段找块:把 211 按 16 或 240 取整,得出把第 4 段当作 208 之类的结论,完全跑偏。记住一条判据即可:块大小永远作用在「掩码里第一个不是 255 的段」,/20 的这个段是第 3 段,因此第 4 段整体都落在同一个子网内,不参与定位。
基本信息
| 掩码 | /20 = 255.255.240.0 |
|---|---|
| 有效段 | 第 3 段(块大小 16) |
| 网络地址 | 172.16.32.0 |
| 广播地址 | 172.16.47.255 |
| 可用范围 | 172.16.32.1 – 172.16.47.254 |
| 可用主机数 | 4094 |
同类题型的扩展问法
- 求广播地址:第 3 段加块大小减一,第 4 段为 255
- 求可用主机数:2 的 12 次方减 2 等于 4094
- 问下一个子网:32+16=48,即 172.16.48.0/20
- 判断是否与另一个地址同段:两个地址的第 3 段分别按 16 归位再比较
- 问包含哪些 /24:172.16.32.0 到 172.16.47.0 共 16 个
ipcalc 验算
ipcalc 172.16.34.211/20
# Network: 172.16.32.0/20
# Netmask: 255.255.240.0
# Wildcard: 0.0.15.255
# HostMin: 172.16.32.1
# HostMax: 172.16.47.254
# Broadcast: 172.16.47.255Python 一行验证
python -c "import ipaddress as ip; n=ip.ip_interface('172.16.34.211/20').network; print(n, n.broadcast_address, n.num_addresses - 2)"
# 172.16.32.0/20 172.16.47.255 4094第 3 段块序列
| 网段 | 第 3 段范围 | 34 是否在其中 |
|---|---|---|
| 172.16.0.0/20 | 0–15 | 否 |
| 172.16.16.0/20 | 16–31 | 否 |
| 172.16.32.0/20 | 32–47 | 是 |
| 172.16.48.0/20 | 48–63 | 否 |
| 172.16.64.0/20 | 64–79 | 否 |
换成 /22 与 /27 对比着看
同一地址在不同掩码下的答案差别极大:172.16.34.211/22 的掩码第三段是 252、块大小 4,34 归到 32,网段 172.16.32.0/22;/24 时网段是 172.16.34.0/24;/27 时块大小回到第 4 段、为 32,211 归到 192,网段 172.16.34.192/27。三题的唯一区别就是块大小作用在哪一段,把这一层想清楚,跨段题就不再是难点。