将 IP 范围转换为 CIDR 地址范围 c#

本文关键字:范围 地址 CIDR 转换 IP | 更新日期: 2023-09-27 18:34:44

>我有以下问题:我需要将IP地址的范围转换为CIDR地址的范围而不会丢失地址。例如如果我有范围1.1.1.3 - 1.1.1.7,我可以将其转换为

 1.1.1.1/29

使用IPNetwork库,但如果我会转换 1.1.1.1/29再次射程,我得到1.1.1.1 - 1.1.1.6.如何划分范围以获得CIDR格式的几个范围而不会造成损失?如果您能向我展示任何C#代码来执行它,那就太好了。

将 IP 范围转换为 CIDR 地址范围 c#

使用 IPNetwork2 nuget 包,您可以将子网划分到/32 并迭代结果 ips :

文档示例 8

IPNetwork wholeInternet = IPNetwork.Parse("1.1.1.1/29");
IPNetwork ips = IPNetwork.Subnet(wholeInternet, 32);
Console.WriteLine("All  :");
foreach (IPNetwork ip in ips)
{
    Console.WriteLine("{0}", ip);
}

输出

All  :
1.1.1.0
1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.4
1.1.1.5
1.1.1.6
1.1.1.7