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

时间:2016-02-16 12:57:35

标签: c# ip cidr

我遇到以下问题:我需要将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#代码来执行它,那将会很好。

1 个答案:

答案 0 :(得分:0)

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

文档示例8:

var output  = document.getElementById('inputText').innerHTML;
output = parseFloat(output);
if(output  != '0'){
inputText.innerHTML= "(" + (output *2)
.toFixed(3) + "," +  (output*2).toFixed(3) + ")";
}

输出

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);
}