IPv4 mit PHP ermitteln?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung

Jonas8585 
Fragesteller
 23.01.2020, 23:33

Vielen Dank für deine schnelle Antwort. Wieder ein bisschen schlauer geworden. :)

0

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.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012