c# - subnetting - ¿Hay un tipo.NET nativo para subredes CIDR?
subneteo de redes pdf (2)
Es bastante simple codificar una clase para almacenar / validar algo como 192.168.0.0/16
, pero tenía curiosidad si ya existía un tipo nativo para esto 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 que la cantidad de bits que especifique es válida para ese tipo.
No, hay tal tipo de nativo en .NET, necesitarás desarrollar uno tú mismo.
Puede usar el código de CodePlex para hacer justamente 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