我需要将IP
范围转换为CIDR
符号,反之亦然。我通过以下方式解决了IPNetwork
库的问题:
从CIDR
转换为范围:
var ip = IPNetwork.Parse("192.168.168.100/24");
Console.WriteLine(ip.FirstUsable.ToString() + "/" + ip.LastUsable.ToString());
从范围转换为CIDR
:
IPNetwork network = IPNetwork.Parse("192.168.168.0");
IPNetwork network2 = IPNetwork.Parse("192.168.168.255");
IPNetwork ipnetwork = IPNetwork.Supernet(network, network2);
Console.WriteLine(ipnetwork.FirstUsable + "/" + ipnetwork.Cidr);
似乎它可以正常工作。但是当我使用自定义工具时,它们会返回一些不同的结果。
192.168.168.100/24
IPNetwork
lib返回
192.168.168.1
- 192.168.168.254
http://www.ipaddressguide.com/cidr返回
192.168.168.0
- 192.168.168.255
http://ipconvertertools.com/cidr2ipranges返回
192.168.168.1
- 192.168.168.254
http://ip2cidr.com/bulk-ip-to-cidr-converter.php返回
192.168.168.1/32
192.168.168.2/31
192.168.168.4/30
192.168.168.8/29
192.168.168.16/28
当我尝试转换时
192.168.168.1 - 192.168.168.254
到CIDR
。
我真的很困惑,不同的工具会返回不同的结果。
此外,我的目标是为用户创建白名单,并在他们到来时检查他们IP
,这是一个非常重要的问题。
答案 0 :(得分:2)
鉴于CIDR表示法为192.168.168.100/24:
Network address is 192.168.168.0
First usable address is 192.168.168.1
Last usable address is 192.168.168.254
Broadcast address is 192.168.168.255
Network mask is 255.255.255.0
没有也不能没有歧义。