2008-11-22 21 views
13

192.168.0.0/16 gibi bir şeyi saklamak/doğrulamak için bir sınıfı kodlamak için yeterince basit, ancak bunun için yerel bir türün .NET'de var olup olmadığını merak ettim mi? Ben IPAddress gibi çok çalışmak olacağını hayal ediyorum:CIDR alt ağları için yerel .NET türü var mı?

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

Temel olarak sadece IPv4 veya IPv6 adresi ile çalışan ve daha sonra bit sayısı, belirten türü için geçerli olduğunu emin olmak gerekir.

cevap

3

.NET'te bu tür yerel bir tür yok, kendiniz bir tane geliştirmeniz gerekecek.

Sen CodePlex kodu kullanabilirsiniz
22

sadece bunu yapmak için:

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

Çıktı

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