¿Existe un tipo de .NET nativo para las subredes CIDR?

Es lo suficientemente simple como para codificar una clase para almacenar / validar algo como 192.168.0.0/16 , pero tenía curiosidad si un tipo nativo para esto ya existía en .NET? Me imagino que funcionaría mucho como IPAddress :

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

Básicamente, solo necesita asegurarse de que está trabajando con una dirección IPv4 o IPv6 y luego la cantidad de bits que su especificación es válida para ese tipo.

No, hay un tipo nativo en .NET, tendrá que desarrollarlo usted mismo.

Puede usar el código de CodePlex para hacer precisamente eso:

http://ipnetwork.codeplex.com/

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

Salida

 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