给定IP地址和网络掩码时,如何计算IP范围?

当IP范围写为aaa.bbb.ccc.ddd /

netmask(CIDR表示法)时,我需要使用C#计算此范围内的第一个和最后一个包含的IP地址。

192.168.0.1/25

192.168.0.1-192.168.0.126

回答:

我的好朋友亚历山德罗(Alessandro)在C#中有一篇关于位运算符的不错的文章,您应该阅读它,以便知道该怎么做。

。如果将提供给您的IP分解为二进制,则网络地址是所有主机位(子网掩码中的0)为0的ip地址,而最后一个地址(广播地址)为所有主机的位置位是1。

例如:

ip 192.168.33.72 mask 255.255.255.192

11111111.11111111.11111111.11000000 (subnet mask)

11000000.10101000.00100001.01001000 (ip address)

粗体部分为主机位(其余为网络位)。如果将IP上的所有主机位都设为0,则会获得第一个可能的IP:

11000000.10101000.00100001.01000000 (192.168.33.64)

如果将所有主机位都设为1,则将获得最后一个可能的IP(即广播地址):

11000000.10101000.00100001.01111111 (192.168.33.127)

因此,对于我的示例:

the network is "192.168.33.64/26":

Network address: 192.168.33.64

First usable: 192.168.33.65 (you can use the network address, but generally this is considered bad practice)

Last useable: 192.168.33.126

Broadcast address: 192.168.33.127

以上是 给定IP地址和网络掩码时,如何计算IP范围? 的全部内容, 来源链接: utcz.com/qa/435294.html

回到顶部