Was ist der richtige Weg, um IP in Integer in PHP zu konvertieren?

7

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.

    
NewProger 27.06.2011, 20:01
quelle

3 Antworten

20

Verwenden Sie ip2long() und long2ip() . Sie sind die schnellsten, die Sie in PHP finden können, weil sie nur auf den entsprechenden C-Funktionen aufbauen.

    
KingCrunch 27.06.2011, 20:04
quelle
1

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.

    
Alexander Gessler 27.06.2011 20:04
quelle
1

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 '

    
Patrick Desjardins 27.06.2011 20:05
quelle

Tags und Links