Zitat von
Matze:
Code:
172.23.66.111 = 10101100.00010111.01000010.01101111
255.255.248.0 = 11111111.11111111.11111000.00000000
-----------------------------------
10101100.00010111.01000000.00000000
Da hat die Subnetmask am Ende 14 Nullen und somit ergibt sich ein Bereich von 2^14 = 16384.
Du vergisst, hier die Netzadresse zu bilden:
Code:
172.23.66.111 = 10101100.00010111.01000010.01101111
255.255.248.0 = 11111111.11111111.11111000.00000000
-----------------------------------
10101100.00010111.01000000.00000000 = 172.23.64.0
Und für den danachfolgenden Wertebereich brauchst Du eigentlich gar nicht so kompliziert mit div und mod zu rechnen. Du nimmst den Wert der Subnetmaske, der nicht 255 oder 0 ist (also die 248) und ziehst diesen von 256 ab (macht 8). Jetzt weißt Du, dass Du in der Netzadresse (172.23.64.0) den dritten Wert immer um 8 erhöhen oder vermindern musst, um das jeweils nächste oder vorige Netz zu erhalten. Das nächste Netz ist also 172.23.72.0, das vorige 172.23.56.0.
Wichtig ist, beim Rechnen mit den Netzadressen, immer erst den Host-Anteil auszufiltern (also die UND-verknüpfung mit der Subnet-Maske durchzuführen).
Böser Stolperstein: Natürlich geht nicht jede Kombination aus Subnetmaske und Netzadresse. Bei /20 kann man z.B. 172.23.48.0, 172.23.64.0 und 172.23.80.0 bilden, aber 172.23.56.0/20 ist kein gültiges
IP-Netz, 172.23.56.0/21 dagegen schon.
Gruß,
SirTwist