Я использую библиотеку IPNetwork C# для поиска первого и последнего используемого IP-адреса. Я хочу добиться того, чтобы печатать или хранить в списке весь диапазон IP-адресов между первым и последним используемым IP-адресом. Я использую ниже, чтобы найти первый и последний используемый IP-адрес.Найти все IP-адреса между первым IP-адресом и последним IP-адресом
IPNetwork ipnetwork = IPNetwork.Parse("192.168.1.1/24");
string first = ipnetwork.FirstUsable.ToString();
string last = ipnetwork.LastUsable.ToString();
Если я прохожу чистую маску больше или равен 24, что довольно просто напечатать весь диапазон, так как с/24 в максимуме мы имеем 256 IP-адресов, 254 доступных для хоста и простой цикл будет генерировать весь диапазон, потому что будет изменен только четвертый октет. Однако, если я пропускаю маску сети меньше, чем \ 24 example \ 23, то третий октет также должен измениться, и простой цикл не будет выполнять эту работу, и нужно найти другое решение. Также параметр передан в IPNetwork.Parse может быть не обязательно 192.168.1.1 или 10.0.2.1, но 192.168.1.130 или 10.0.2.200 соответственно, что тоже нужно учитывать.
Помогает ли это: http://stackoverflow.com/questions/1470792/how-to-calculate-the-ip-range-when-the-ip-address-and-the-netmask-is-given, и это http://stackoverflow.com/questions/14327022/calculate-ip-range-by-subnet-mask? –
Вы пишете IPNetwork.Parse() или это предварительная библиотека? – Wamadahama
Это уже существующая библиотека. – user2307236