Oft werden IP Adressen in einer Datenbank als Varchar(15) gespeichert. Doch das braucht 16 Byte pro Adresse. Wenn man sie als Int wert speichern würde, würde man nur 4 Byte brauchen. Das ist eine Ersparnis von 75%!
Außerdem hat das den weiteren Vorteil, das man in den IP Adressen gut suchen kann.
Also speichern wir sie doch in Zukunft als Int:
-
INSERT INTO … VALUES (INET_ATON("127.0.0.1"))
zurückrechnen lässt es sich mit:
-
INET_NTOA(feldname)
Eigentlich ganz einfach und 75% Platz gespart
Und wir können nun mit dem kleiner und größer Operator ganz einfach auf bestimmte IP Bereiche testen z.B. um diese zu filtern.
Erklärung warum das so ist:
IP-Adresse: 127.0.0.1
-> IP in Hex: 0x7F.0×00.0×00.0×01
-> Punkte entfernen: 0x7F000001
-> Dezimal: 2130706433
Das lässt sich natürlich auch wieder zurückrechnen