Hallo und guten Morgen,
die CIDR-Schnippel abschneiden und einen Hash mit IP's erzeugen, so dass danach mit eimem einzigen Schleifendurchlauf über die B-Liste geprüft werden kann, ob eine B-IP in %hunt einen Treffer liefert.
Aufgabenstellung nochmal lesen. Die IPs können auch nur im gleichen Netz liegen, definiert durch die CIDR. Es muss kein genauer Treffer sein. Ein Hash-Lookup ist keine geeignete Lösung.
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).
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.
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.
Überlege Dir, wass Du überhaupt berechnen willst dann ist das nur noch Tipparbeit.