将 IP 地址范围转换为 CIDR 格式,反之亦然

本文关键字:CIDR 格式 反之亦然 转换 IP 地址 范围 | 更新日期: 2023-09-27 18:34:10

我需要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 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,所以这是一个非常重要的问题。

将 IP 地址范围转换为 CIDR 格式,反之亦然

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

没有也不可能没有歧义。