编写一个类来存储/验证诸如 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/