IPv6 CIDR范围

时间:2020-06-29 08:53:34

标签: c# ipv6 cidr

我有一个CIDR Ipv6地址列表

2c0f:fe40:8000::/48
2c0f:feb0::/43
2c0f:feb0:20::/45

如何在不使用外部库的情况下(从VS安装中不包括)获得ip范围从-到? 这不是convert cidr to range的副本,因为我的问题是指IPv6表示法,而不是IPv4。

示例:

Input: 2c0f:fe40:8000::/48
Output: 2c0f:fe40:8000:0:0:0:0:0 - 2c0f:fe40:8000:ffff:ffff:ffff:ffff:ffff

2 个答案:

答案 0 :(得分:1)

我为您的问题写了一个快速解决方案,无需使用任何外部库here you can find the source code

有关如何使用它的示例:

CidrBlock block = CidrBlock.Parse("2c0f:fe40:8000::/48");
Console.WriteLine($"Start address: {block.StartAddress.IPAddress}");
Console.WriteLine($"End address: {block.EndAddress.IPAddress}");

会回来

Start address: 2c0f:fe40:8000::
End address: 2c0f:fe40:8000:ffff:ffff:ffff:ffff:ffff

关于。-

答案 1 :(得分:0)

IPNetwork2是一个很棒的nuget软件包,几乎可以满足您与网络地址相关的所有需求。

有了它,您可以轻松解析IPV6 CIDR并获得该范围的第一个和最后一个IP。

var ipnetwork = IPNetwork.Parse("2c0f:fe40:8000::/48");

Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);

可从https://github.com/lduchosal/ipnetwork获得该源。