如何检查给定的IP@是否是子网@地址?

问题描述 投票:0回答:2

有没有办法检查给定的IP地址是否是子网IP地址? 例如 : 16.100.134.0 /19 这个IP地址是一个子网IP地址(我在解决方案中看到它)但我仍然不知道他们是如何计算出来的。

ip subnet
2个回答
2
投票

最后的/19告诉你这是一个子网地址。

完整的 IPV4 地址是 4 组 8 位或八位字节(每个地址显示为 0 -255 范围内的十进制),因此长度为 32 位。 /19 告诉您这是子网的地址,其中前 19 位保留用于网络和子网地址,其余 13 位用于子网内的主机。子网意味着部分主机空间已用于将网络划分为更小的网络。在这种情况下,网络地址可能是 16.100.0.0 /16,子网使用主机空间的前 3 个有效位将其分成最多 8 个子网。

因此,13 位意味着最多 2^3-1 个不同的可用 IP 地址 - 最后一个八位字节可以采用 0 到 255 之间的值,倒数第二个八位字节可以采用 134 + 0 到 134 + 31 之间的值

用二进制可能更容易看出这一点。您在那里的地址是

00010000.01100100.10000110.00000000
,有效的 IP 地址应该在
00010000.01100100.10000000.00000000
00010000.01100100.10011111.11111111
范围内,这让我认为您拥有子网中主机的地址 - 子网地址的 13 全部为 0最低有效位,意味着第三个八位字节仅具有 3 个最高有效位,即它的值为 0、32、64、128、96、192 或 224 之一


0
投票

@Chris 在他的回答中解释得很好。我就是这样做的

  • CLI:使用名为 prips 的实用程序。

示例:

❯ prips 20.13.16.0/30                 
20.13.16.0
20.13.16.1
20.13.16.2
20.13.16.3

# If your range is big (example /22), then you can also use grep
❯ prips 20.13.16.0/30 | grep 20.13.16.3
20.13.16.3

© www.soinside.com 2019 - 2024. All rights reserved.