Hallo und guten Morgen,
Hallo,
Ich komme mit dem Wertebreich vom Integer nicht klar für IPv4, denn MAXINT ist eben nur 31stellig für den Zahlenwert...
$parts = explode(".", $_SERVER['REMOTE_ADDR']); $integer_ip = 16777216 * $parts[0] + 65536 * $parts[1] + 256 * $parts[2] + $parts[3];
macht maximal irgendwas mit 4 Mrd (2^15). Weit weniger als 31 Stellen.
nein, hier liegst du falsch. Der erste Koeffizient 16777216 ist ja schon 2^24, das Ergebnis kann bis zu 2^32-1 sein. Aber ich nehme an, TS meinte 31 binäre Stellen, weil Integer von -2^31 bis +2^31-1 geht.
Jau! So war das gemeint. Ich benötige alle 32 Bit vorzeichenlos.
Und wenn Ihr mein Testprogramm noch mit weiteren IPs füttert, solltet Ihr sehen, dass ip2long() und long2ip() nicht funktionieren. So ist das zumindest bei mir. Ich habe hier immer noch ein 32-Bit-System drunter und z. Zt nur PHP Ver 5.4.31
Also entweder habe ich einen dicken Denkklops drin, oder aber die beiden IP-Funktionen sind buggy.
Grüße
TS