好吧,我不确定我是否遗漏了什么。但我读到的所有内容是,如果 IP 的第一个八位字节在 0 - 127 之间,则它被归类为 A 类子网,相应的子网掩码为 255.0.0.0,但是当我将系统连接到 Apple Airport 时,我的系统获得的 IP 为 10.0.1.4,但子网掩码为 255.255.255.0 而不是 255.0.0.0。请解释我在这里遗漏了什么。
如果有类似的事情,比如苹果路由器的子网掩码是根据不同的标志计算出来的,请告诉我。这就是我目前正在做的事情,以便从 IP 地址获取子网掩码。
if (ipAddress == null)
{
return ClassCSubnetMask;
}
byte byteipAddressFirstOctet = ipAddress.GetAddressBytes()[0];
if (byteipAddressFirstOctet <= 127)
{
return ClassASubnetMask;
}
else if (byteipAddressFirstOctet >= 128 && byteipAddressFirstOctet <= 191)
{
return ClassBSubnetMask;
}
else if (byteipAddressFirstOctet >= 192 && byteipAddressFirstOctet <= 223)
{
return ClassCSubnetMask;
}
return null;
对于所有投票关闭此帖的人 - 我尝试删除此帖,但没有成功,因为帖子中有答案。同时,我已将其发布在超级用户上。
感谢大家让我了解子网划分:)
答案1
某些类别的 IP 被视为私有且“不可路由”,包括 10.0.0.0 - 10.255.255.255、192.168.0.0 - 192.168.255.255 和 172.16.0.0 - 172.31.255.255。
这些范围的子网掩码通常会与旧类边界对齐,但并非必须如此。您在家中使用的消费设备通常默认使用 /24 (255.255.255.0),即使它们使用 10.xxx 范围内的地址。这样做的部分原因是,如果设备被带入更大的网络,具有更大的子网,设备 IP 可能会与其他设备发生冲突,则提供保护。这为该网络提供了一种保护。
较大的网络通常也被划分为较小的逻辑组,称为 VLAN。这些 VLAN 可能需要占用相同的大地址空间,但仍具有不同的网络和广播地址。因此,我可能会设置一个使用 10.1.0.0 作为网络地址的 VLAN,并使用 255.255.0.0 作为子网掩码,设置一个广播地址 10.1.255.255。然后,我可以有一个从 10.2.0.0 开始的不同 VLAN,它将与第一个网络分开。您可以具体了解地址中有多少用于网络,有多少用于主机。
除此之外,随着 IPv4 空间被填满,大多数大块现在已被分割,而且我们实际上不再谈论 A、B、C、D 类了。