c# - CIDR 子网是否有原生 .NET 类型?

标签 c# .net ip-address subnet cidr

编写一个类来存储/验证诸如 192.168.0.0/16 之类的内容非常简单,但我很好奇 .NET 中是否已经存在用于此的 native 类型?我想它会很像 IPAddress:

CIDR subnet = CIDR.Parse("192.168.0.0/16");

基本上它只需要确保您使用的是 IPv4 或 IPv6 地址,然后您指定的位数对该类型有效。

最佳答案

您可以使用 GitHub 中的代码来做到这一点:

https://github.com/lduchosal/ipnetwork

IPNetwork ipnetwork = IPNetwork.Parse("192.168.168.100/24");

Console.WriteLine("Network : {0}", ipnetwork.Network);
Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
Console.WriteLine("Usable : {0}", ipnetwork.Usable);
Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);

输出

Network : 192.168.168.0
Netmask : 255.255.255.0
Broadcast : 192.168.168.255
FirstUsable : 192.168.168.1
LastUsable : 192.168.168.254
Usable : 254
Cidr : 24

关于c# - CIDR 子网是否有原生 .NET 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/310599/

相关文章:

c# - ASP.NET Identity 有时无法登录

c# - 错误 : The XML declaration must be the first node in the document

.net - 仅使用Exception类作为传输机制?

windows-phone-8 - 在命令提示符中键入 'ipconfig' 会显示两个 IPv4 地址。我的电脑是哪一台?

java - 如何从 IP 范围中获取单独的连续 IP block ?

c# - Observable.FromAsync 内存泄漏 [墨尔本开发者/Devicenet]

c# - Dotnet 构建不适用于 newcsproj 和 PackageReference

c# - OnRelease 期间的异常是否会导致组件无法正确处置?

Java 是开源的,那又怎样?

iphone - 如何在iPhone sdk中以编程方式获取设备名称?