IPv4 mit PHP ermitteln?
Guten Abend,
kann mir hier vielleicht jemand erklären wie ich mittels PHP meine IPv4 abfragen kann? Wenn ich z.B. bei wieistmeineip.de (oder andere Seiten dieser Art) schaue, wird mir einmal eine v4 und einmal eine v6 angezeigt. Wenn ich nun mit PHP die Funktion
$_SERVER["REMOTE_ADDR"]
verwende, wird mir lediglich die v6 angezeigt. Wie komme ich an die v4?
Vielleicht kann mir hier jemand helfen.
Danke im Voraus.
2 Antworten
Geht nicht. Wenn sowohl der Client als auch der Server IPv6 unterstützen, wird sich auch über IPv6 verbunden. In dem Fall kennt der Server eine eventuell existierende IPv4 Adresse des Clienten nicht, da das zwei vollkommen unabhängige Protokolle sind.
Seiten wie die von dir genannte arbeiten so, dass diese die IPs über zwei einzelne Webserver ermitteln. Einer unterstützt (nur) IPv6, der andere nur IPv4. Diese beiden Server werden mittels JavaScript / AJAX angefragt. Der eine Server spuckt dann die IPv4 Adresse des Clienten aus falls vorhanden, der andere die IPv6 Adresse falls vorhanden (jeweils einfach mit $_SERVER["REMOTE_ADDR"]). Falls eine der beiden Adressen jeweils nicht vorhanden ist bzw. das jeweilige Protokoll (v4 / v6) nicht unterstützt wird, kann sich der Client nicht mit dem jeweiligen Server verbinden, somit ist dann für den "Haupt-Server" (der zuständig für die Anzeige der Adressen ist) klar, dass das entsprechende Protokoll nicht unterstützt wird und somit dort keine Adresse vorhanden ist.
Vielen Dank für deine schnelle Antwort. Wieder ein bisschen schlauer geworden. :)
Indem du deinen Webserver so einstellst, dass der mit IPv4 arbeitet. Solltest du eine gängige Entwicklungsumgebung haben mit XAMPP oder ähnlichen, die auf Apache basieren müsstest du dafür die Listen Adresse in der httpd.conf ändern.
Im Falle von XAMPP findest du diese unter:
{Dein XAMPP Pfad}\apache\conf\httpd.conf
Dort solltest du relativ weit oben etwas wie:
Listen 80
finden. Dieses kannst du folgendermaßen ändern, dann bekommst du nur noch IPv4 Requests rein:
Listen 0.0.0.0:80
Warum einige Services beides anzeigen wurde dir ja erklärt.