如何根据IP地址和子掩码算出网络地址?子网划分计算方法
- 虚拟主机
- 2026-06-27
- 6
在网络通信中,确定一个IP地址所属的网络地址是进行路由配置、子网划分以及故障排查的基础步骤,网络地址(Network Address)代表了该子网的唯一标识,它通过将IP地址与子网掩码进行按位“与”(AND)运算得出,在这个过程中,IP地址中对应子网掩码为1的位保留原值,对应为0的位则全部置为0。
核心计算原理
要准确计算网络地址,首先需要理解IP地址和子网掩码的二进制结构,IPv4地址由32位二进制数组成,通常分为四个8位段,每段用十进制表示,中间用点分隔,子网掩码同样由32位组成,其作用是指明IP地址中哪些位代表网络部分,哪些位代表主机部分,子网掩码中连续的1代表网络位,连续的0代表主机位。
计算的核心逻辑遵循布尔代数中的“与”运算规则:
- 1 AND 1 = 1
- 1 AND 0 = 0
- 0 AND 1 = 0
- 0 AND 0 = 0
这意味着,只有当IP地址和子网掩码在对应位上同时为1时,结果位才为1;否则结果位为0。
计算步骤详解
为了清晰地展示计算过程,我们可以将十进制转换、二进制对齐、按位运算以及结果还原四个步骤拆解如下。

将IP地址和子网掩码转换为二进制
以IP地址 168.1.105 和子网掩码 255.255.0 为例。
| 段 | IP地址 (十进制) | IP地址 (二进制) | 子网掩码 (十进制) | 子网掩码 (二进制) |
|---|---|---|---|---|
| 第1段 | 192 | 11000000 | 255 | 11111111 |
| 第2段 | 168 | 10101000 | 255 | 11111111 |
| 第3段 | 1 | 00000001 | 255 | 11111111 |
| 第4段 | 105 | 01101001 | 0 | 00000000 |
执行按位“与”运算
将上述两个二进制序列逐位进行AND运算。
| 段 | IP地址 (二进制) | 子网掩码 (二进制) | 运算结果 (二进制) | 运算说明 |
|---|---|---|---|---|
| 第1段 | 11000000 | 11111111 | 11000000 | 掩码全1,IP保持不变 |
| 第2段 | 10101000 | 11111111 | 10101000 | 掩码全1,IP保持不变 |
| 第3段 | 00000001 | 11111111 | 00000001 | 掩码全1,IP保持不变 |
| 第4段 | 01101001 | 00000000 | 00000000 | 掩码全0,结果全为0 |
将结果转换回十进制
将运算后的二进制结果转换回十进制,即得到网络地址。
- 第1段:11000000 -> 128 + 64 = 192
- 第2段:10101000 -> 128 + 32 + 8 = 168
- 第3段:00000001 -> 1 = 1
- 第4段:00000000 -> 0 = 0
IP地址 168.1.105 在子网掩码 255.255.0 下的网络地址为 168.1.0。

特殊情况:非标准子网掩码
当子网掩码不是 255.255.0 这种标准形式时(255.255.192),计算依然遵循相同逻辑,但第四段会发生截断。
假设 IP: 168.1.105,掩码: 255.255.192。
- 转换掩码第四段:192 的二进制是 11000000。
- 转换IP第四段:105 的二进制是 01101001。
- 按位与运算: 01101001 (IP: 105) & 11000000 (Mask: 192) ---------- 01000000 (Result)
- 结果转换:01000000 转换为十进制是 64。
该情况下的网络地址为 168.1.64。
快速估算技巧
对于常见的 /24 (255.255.255.0) 掩码,网络地址就是IP地址的前三段不变,最后一段变为0,对于 /25 到 /31 的非标准掩码,可以通过观察掩码中最后一个非255的字节值来确定“块大小”(Block Size)。

块大小 = 256 最后一个非255的掩码字节值。
例如掩码 255.255.192,块大小 = 256 192 = 64,这意味着子网从0开始,每64个地址为一个子网(0-63, 64-127, 128-191, 192-255),IP地址 105 落在 64-127 这个区间,因此网络地址是该区间的起始值,即 .64。
相关问题与解答
问题1:如果已知网络地址和子网掩码,如何计算该子网内的第一个可用主机地址?
解答:
第一个可用主机地址是网络地址的下一个IP地址,具体计算方法是将网络地址的最后一位(或最后几个位,取决于掩码)加1。
- 网络地址为 168.1.0/24,第一个可用主机地址为 168.1.1。
- 网络地址为 168.1.64/26(掩码255.255.255.192),第一个可用主机地址为 168.1.65。
- 注意:网络地址本身(主机位全0)和广播地址(主机位全1)不能分配给主机使用。
问题2:为什么网络地址的主机位必须全为0?如果主机位不为0会怎样?
解答:
网络地址的主机位全为0是为了唯一标识整个子网,在路由表中,路由器使用网络地址来查找路由条目,如果主机位不为0,该地址将被视为该子网内的一个特定主机地址,而不是子网本身的标识。
- 如果尝试将主机位不为0的地址用作网络地址进行路由汇总或配置,会导致路由冲突或无法正确识别子网范围。
- 在CIDR(无类别域间路由)中,网络地址是子网的“边界”起点,所有属于该子网的IP地址在二进制表示中,其网络位部分必须与网络地址完全一致。