CIDR子网是否有本机.NET类型?

问题描述 投票:17回答:2

编写一个类来存储/验证192.168.0.0/16之类的代码很简单,但是我很好奇.NET是否已经存在用于此的本机类型?我想它会像IPAddress

一样工作
CIDR subnet = CIDR.Parse("192.168.0.0/16");

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

c# .net ip-address subnet cidr
2个回答
5
投票

。NET中没有这种本机类型,您需要自己开发一个。


27
投票

您可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.