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.

Était-ce utile?

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
scroll top