سؤال

وانها بسيطة بما فيه الكفاية لرمز يصل فئة لتخزين / تحقق شيء من هذا القبيل 192.168.0.0/16، ولكن كان من الغريب إذا كان نوع الأصلي لهذا موجود بالفعل في. NET؟ أتصور أنها ستعمل الكثير مثل IPAddress:

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

واساسا انها تحتاج فقط للتأكد من كنت تعمل مع عنوان IPv4 أو IPv6 و بعد ذلك أن عدد البتات مع تحديد صالحا لهذا النوع.

هل كانت مفيدة؟

المحلول

لا يوجد مثل هذا النوع الأصلي في .NET، سوف تحتاج إلى تطوير واحد نفسك.

نصائح أخرى

ويمكنك استخدام رمز من كود بلاكس لفعل ذلك:

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

والناتج

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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top