Sven Rautenberg: Sucharithmetik IP-Adresse / Wildcard

Beitrag lesen

Moin!

Ich selber versuch es mit Bitweises verunden.. aber klappte halt noch nicht.

Das ist aber der beste Ansatz dafür.

Das Problem dürfte sein, die Benutzereingabe in eine vernünftige Maske zu verwandeln. Resultat sollte ein der Netzmaske ähnlicher Wert sein, wobei es, genau wie bei der Netzmaske, nicht zwingend erforderlich ist, dass links nur 1 und rechts nur 0 stehen - auch Mischungen sind möglich.

Also: Du hast aufgrund irgendwelcher Feststellungen (ich nehme mal dein Beispiel mit * als dritten Part) die IP 192.168.*.23 gesucht - das ergibt als Maske 255.255.0.255 - bzw. deren Binärdarstellung.

Wenn du jetzt prüfen willst, ob eine IP-Adresse in der DB in den gesuchten IP-Bereich kommt, prüfst du, ob DB-IP & Maske = gesuchte IP & Maske.

Wenn du gut bist, erlaubst du als Sucheingabe dann nicht nur ein Sternchen für ein einzelnes IP-Element, sondern auch Maskenschreibweise (192.168.0.1/255.255.255.0) und CIDR-Notation (192.168.0.1/24). Wenn der Suchende dir die Maske gleich mitliefert (wobei hier wieder die Anmerkung gilt, dass die nicht zwingend links nur 1 und rechts nur 0 in binärer Darstellung haben muß - im Prinzip ist alles erlaubt), dürfte die Aufgabe am leichtesten sein, und die CIDR-Darstellung (da ist die Maske dann entsprechend zu bilden) sollte auch keine große Schwierigkeit darstellen.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|