【发布时间】:2016-01-01 15:51:02
【问题描述】:
我正在编写一个代码,它将从给定 IP 输出每个子网的第一个和最后一个 IP 地址。
例如,如果 IP 地址是 192.168.1.8/28,那么如果我们计算总共有 16 个子网。那么,如何找到其中任何子网的起始和最后一个 IP 地址呢? (如 12 日或 13 日)
注意: (我正在寻找逻辑而不是实际代码)
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为它要么是作业、课程项目,要么是 OP 没有证明他自己首先解决的任何编程挑战问题。跨度>
-
如何得出
192.168.1.8/28表示有16 个子网的想法?该网络中有 16 个主机地址,我想如果您在每个地址上都有一个/32,您可能想要调用192.168.1.0/28网络的 16 个子网,但这并不完全准确。 -
@TheLaughingMan 首先它不是任何作业类型或编程挑战问题。这不是一个离题的问题,它的真正问题可能是让他的程序更有用。我没明白你为什么要结束这个问题。我试图解决它,但我没有得到任何简单的解决方案,而不是通常的常规类型解决方案。所以这就是我问这个问题的原因。
-
@RonMaupin 我将 IP 地址视为 32 位。因此,您将拥有的最大 CIDR 表示法是 /32。现在回到我提到的示例 192.168.1.8/28 是 C 类类型的 IP 地址,因此有效的 CIDR 表示法大于 /24 。我给了 /28 所以 4 位用作子网位,它可以提供 16 个子网,从而在特定子网中产生 16 个主机。
-
有类寻址已死; RFC 1518 (1993)、1519 (1993) 和 1817 (1995) 扼杀了它。它已经完全过时了,每个人都需要克服它。正如千禧一代所说,“老兄,这太上世纪了!”您使用
/28声明网络,因此子网的掩码会比这更长。您应该修改问题以澄清您的意思是网络为/24;类似于192.168.1.0/24的子网大小为/28,或者您可以说“192.168.1.8/28是 16 个连续子网之一中的地址”,但不要假设有类寻址。
标签: ip-address subnet