5На сетевом калькуляторе у меня есть IP-адрес, введенный пользователем и подсетью, а также сетевой адрес для указанного IP-адреса хоста. (Рассчитали)
Все, что мне сейчас нужно, это создать цикл for, который будет считать вверх, пока не будет достигнут последний IP-адрес (широковещательный).
Итак,
int IP1 = 192,IP2 = 168,IP3 = 0,IP4 = 0, subnet = 255.255.0.0;// 192.168.0.0/16
int totalIPs = 65536; //hostbits^2
do
{
for (int a = IP1; a < 255; a++)
{
IP1++;
for (int b = IP2; b < 255; b++)
{
IP2++;
for (int c = IP3; c < 255; c++)
{
IP3++;
for (int d = IP4; d < 255; d++)
{
totalIPs= totalIPs - 1;
IP4++;
}
IP4 = 0;
}
IP3 = 0;
}
IP2 = 0;
}
}
while (totalIPs > 0);
Я знаю, что с этим циклом for что-то ужасно не так, но я просто не могу этого понять.
Что мне нужно, так это широковещательный адрес, считая от исходного значения IP (в данном случае 192.168.0.0) и отсчитывая от него до последнего IP (теперь, когда мы знаем, сколько IP-адресов он должен считать)
Поэтому, когда октет 4 (d) достигает 255, октет 3 (c) поднимается на 1, затем сбрасывает октет 4 (d) и т. Д., Как часы.