Существует ли собственный тип .NET для подсетей CIDR?

StackOverflow https://stackoverflow.com/questions/310599

Вопрос

Достаточно просто написать класс для хранения/проверки чего-то вроде 192.168.0.0/16, но мне было любопытно, существует ли уже в .NET собственный тип для этого?Я предполагаю, что это будет работать примерно так: IPAddress:

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

По сути, просто нужно убедиться, что вы работаете с адресом IPv4 или IPv6, а затем, что указанное вами количество бит действительно для этого типа.

Это было полезно?

Решение

Нет, в .NET есть такой нативный тип, вам нужно разработать его самостоятельно.

Другие советы

Для этого вы можете использовать код из CodePlex:

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