给定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.19211111111.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