Also muss ich IP-Adressen in der Datenbank speichern, aber sie als Stiche speichern ist nicht sehr effizient und nicht sehr praktisch für meinen Zweck.
Also ... Wie kann ich IP in eine ganze Zahl in PHP mit so wenig Verarbeitung wie möglich konvertieren, weil es Millionen Mal am Tag getan werden wird.
Und natürlich, wie kann ich zurück von INTEt zu IP konvertieren?
Ich weiß, dass dies gegoogelt werden kann und es gibt einige einfache Lösungen - aber ich frage nach dem schnellsten Weg, nicht nur nach "do X und du bekommst Y", weil es eigentlich eine ziemlich einfache Aufgabe ist.
Benutze ip2long
- diese Funktion ist so schnell, es ist einfach egal, ob Du nennst es eine Million Mal am Tag. Es ist eine Bibliotheksfunktion, es ist also gut getestet und zuverlässig.
Und in Anbetracht Ihrer Arbeitszeit ist es definitiv die schnellste Lösung im gesamten Universum.
Sie können ein INT
verwenden $ip = ip2long($ip);
Um in mysql zu speichern:
%Vor%Sie können die IP später zurückbekommen:
%Vor%INET_NTOA (Ausdruck):
Angabe einer numerischen IPv4-Netzwerkadresse in Netzwerk-Byte-Reihenfolge, gibt die punktierte Quadrupel Darstellung der Adresse als binäre Zeichenfolge. INET_NTOA () gibt NULL zurück, wenn dies der Fall ist verstehe sein Argument nicht.
mysql & gt; SELECT INET_NTOA (167773449); - & gt; '10 .0.5.9 '