表示/24构成地址网络部分的位数,在本例中为 24(或 30)。
如果仅对具有最小网络部分的 IP 地址进行 AND 操作,则相同的网络将包含相同的值。
例如,这是一个 C 实现(未经测试):
unsigned int ip1 = (192<<24) | (168<<16) | (0<<8) | (1);
unsigned int ip2 = (192<<24) | (168<<16) | (0<<8) | (2);
unsigned int nm1 = (-1) << (32 - 24);
ip1 &= nm1; // Note: we use nm1 as its the smallest number of bits in the network
ip2 &= nm1;
if (ip1 == ip2) { } // Same network
Run Code Online (Sandbox Code Playgroud)
从技术上讲,您的 /30 和 /24 是不同的网络,并且将使用路由器来到达不同的地址(即 /24 不会对 IP 1-254 使用路由器,而 /30 将对大多数这些地址使用路由器)。然而,它们在同一地址空间中重叠。