2

如果我有一个私有 IP 地址块,例如 171.58.0.0/12,这是否意味着我基本上按位与 171.58.0.0 的 32 位版本与 32 位 1,其中最后 12 位为 0 , 以获得该范围内可接受的私有 IP 地址的最长前缀?

10101011.00111010.00000000.00000000 (171.58.0.0) AND
11111111.11111111.11110000.00000000 (12 bit mask?)

=

10101011.00111010.00000000.00000000 (Longest Prefix of Private IP addresses)

获取前缀可接受的私有 IP 地址?

谢谢!

4

4 回答 4

7

您创建一个 32 位数字,将高 12 位设置为 1,然后将其与给定的 IP 地址相加,然后您将获得网络地址。其余位可用于主机地址,除了全零(网络地址本身)和全一(广播地址)的保留数字。在您的情况下,它将是:

171.58.0.0 = network
171.58.0.1 to 171.58.15.254 = hosts
171.58.15.255 = broadcast

编辑。请参阅 Tony van der Peet 的回答,因为它为我的回答添加了有价值的信息。

于 2009-12-09T08:18:11.427 回答
2

@Konamiman-您的答案几乎在(+1)上,但由于问题中的奇怪内容,我无法避免回答。

首先,我想强调一下,OP 将 12 位反转,/12 表示左侧 12 位 1,而不是右侧 12 位零。

其次,二进制的 171.58.0.0/12 是 10101011.00111010.00000000.00000000 (作为 OP 状态),掩码为 11111111.11110000.00000000.00000000,这意味着地址的主机地址部分中有非零位。据我所知,这不是表达地址的方式,即使它是该子网中的有效单个地址。

更明智的是,您可以将其表示为 171.48.0.0/12(这是问题中的错字吗?),这意味着主机部分全为零。171.58.0.0 的最小有效网络掩码是 /15。

编辑:看看这个IP 寻址指南。它有点过时,因为它指的是 A、B、C 类,但它是一个有用的网络掩码备忘单。

于 2009-12-09T08:55:37.570 回答
0

假设这是基于 CIDR,也许`

Mask:255.240.0.0     Host/Net - 1048574
Network          Broadcast
171.48.0.0       171.63.255.255
于 2010-01-16T19:31:53.967 回答