Hallo und guten Abend,
erstaunt guck
Ja, so ist das leider gedacht. Und dabei ist eben das Hauptproblem, dass die CIDR bei der Netz-IP ("Heuhaufen") steht und nicht bei der zu prüfenden ("Nadel"). Man weiß also ohne die Netz-IP nicht, wieviele Bits relevant sind.
Dafür gibt es eine Default-Mask (siehe auch Default Class).
hä? WIe meinst Du das? Meine Aufgabenstellung war doch deutlich beschrieben.
Aber die Diskussion hat für mich bereits ergeben, dass ich ja nach dem ersten Treffer aufhören kann zu suchen. Ich müsste also am besten über die CIDR sortieren, kleinste zuerst
So würde das ein Router wohl auch machen ;-)
Ein classful Router guckt sich die Maske gar nicht erst an, sondern nur die ersten Bit's. Die Maske kommt erst bei classless Routing ins Spiel /CIDR.
Ich sprach aber von "CIDR" und das ist doch wohl eindeutig classless Routing. Und das "So würde das ein Router wohl auch machen" bezieht sich auf das Sortieren der Liste nach (IP und) CIDR-Suffix. Beim Vergleichen kann er dann abbrechen, wenn das Netz mit dem kleineren Suffix passt.
Bleibt jetzt also "nur noch" mein Problem mit der numerischen Länge.
Router bilden eine sog. Summary, wenns entsprechend konfiguriert ist, werden Netze zusammengefasst, auch als Super-Netting bezeichnet.
Genau, das Netz mit dem kleinsten Suffix, das passt, ist das Supernet.
Überlege Dir, wass Du überhaupt berechnen willst dann ist das nur noch Tipparbeit.
Dachte ich auch, bis ich feststellen musste, dass bei PHP mal wieder der Teufel im Detail steckt. In Assembler wäre es ganz schnell gegangen, aber da fehtl mir dann der ganze Anzeigequark, der (nicht erwähnt, da weitere Aufgabe) im Browser stattfinden soll.
Sonst hätte ich mich bestimmt nicht für PHP entschieden für diese Aufgabenstellung.
Grüße
TS