User ip adresse mit ip adressen bereich in 2 tabellen vergleichen

holzfeld

Neuer Benutzer
Beiträge
2
Moin allseits

Ich bin gerade dabei eine user IPprüfung zu realisieren.
folgende Aufgabe:

Ich habe in 2 tabellen ipadressen bereits als IP-Long zur verfügung.
z.b. Tabelle 1 IP von "16777216" bis IP "16777471"

der User hat die ip adresse 16777304

nun soll geprüft werden ob die IP des User im bereich ip1 und ip2 sich befindet
wenn ja dann soll aus Tabelle 3 das Land ausgegeben werden

eine prüfung via php und einer CSV datei dauert zu lange

LG
Holzfeld

16777216,"16777471","AU","Australia","Queensland","Brisbane"
 
Werbung:
mmh, vielleicht einfach so:
where ip between 16777216 and 16777471

und grundsätzlich:
wenn man mit Zahlenwerten arbeiten (oder testen) möchte, sollte man keine Anführungszeichen einsetzen.
 
Deine Werte sind dann aber mehrdeutig, wenn ich das recht verstehe. 16777216 kann mehreren IP-Adressen entsprechen:

16.77.72.16 Japan
1.67.77.216 Japan
16.77.7.216 Japan
167.7.72.16 USA South Carolina
167.77.2.16 USA Pennsylvania
167.77.21.6 USA Pennsylvania
167.7.7.216 USA South Carolina
...

Das die Liste kurz ausfällt ist auch nur der Tatsache geschuldet, das viele Siebenen drin stehen. Du hast also ein Problem mit deinem Format / Datentyp.

Haben deine "IP-Bereiche" immer eine IP von bis? Ich finde ja Netzmasken deutlich eleganter und damit kann man auch in SQL arbeiten.
 
Werbung:
Zurück
Oben