Existe-t-il un type .NET natif pour les sous-réseaux CIDR?
-
10-07-2019 - |
Question
C’est assez simple pour coder une classe afin de stocker / valider quelque chose comme 192.168.0.0/16
, mais je me demandais si un type natif pour cela existait déjà dans .NET? J'imagine que cela fonctionnerait beaucoup comme IPAddress
:
CIDR subnet = CIDR.Parse("192.168.0.0/16");
En gros, vous devez simplement vous assurer que vous utilisez une adresse IPv4 ou IPv6, puis que le nombre de bits que vous spécifiez est valide pour ce type.
La solution
Non, il existe un tel type natif dans .NET, vous devrez en créer un vous-même.
Autres conseils
Vous pouvez utiliser le code de CodePlex pour faire exactement cela:
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);
Sortie
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow