2010-12-27 3 views
1

Ich versuche, ein kleines Skript zu schreiben, das ip des Clients druckt. Ich versuche, es auf meinem localhost auszuführen, aber ich bin nicht in der Lage, die IP-Adresse zu erhalten. Stattdessen bekomme ich etwas wie :: 1.Ich kann meine IP-Adresse nicht in PHP

Hier ist der Code:

<?php echo $_SERVER['REMOTE_ADDR'];?> 

Warum dies nicht wie erwartet funktioniert?

+1

':: 1' ist (Art von) die IPv6-Version von' 127.0.0.1' ('localhost'). Ihr System muss IPv6 verwenden, wenn Sie eine Verbindung zu 'localhost' herstellen. – ncuesta

Antwort

5
::1 

Ist die Loopback-Adresse (127.0.0.1 in IPv4) in IPv6.

Dies ist das erwartete Verhalten. Wenn Sie Firefox verwenden, können Sie zu about:config navigieren, nach disableIPv6 suchen und es auf true setzen. Sie sehen dann 127.0.0.1.

Also ja, es funktioniert.

+0

Also bedeutet es, dass es funktioniert? Bekomme ich korrekte IPs, wenn ich sie auf einen echten Server lege? Oder sollte ich es in ip4 konvertieren (wie?)? – Vonder

+0

@Vafello, ja, es funktioniert. Dies ist überhaupt kein Problem mit IPv4 und IPv6. Es ist einfach die Adresse, die verwendet wurde, um eine Verbindung zu Ihrem Webserver herzustellen. In deinem Fall war es der Loopback. Mach dir keine Sorgen. – Brad

+0

Definiere "korrekte IPs" ... – ncuesta

2

Es funktioniert ordnungsgemäß. Das sind deine IP-Adressen ... die IPv6-Version davon. Wenn Sie eine Verbindung über IPv4 hergestellt hätten, wäre dies als 127.0.0.1 angezeigt worden.

Dies sind Loopback-Adressen. Sie ermöglichen Ihnen, eine Verbindung zu Ihrem eigenen Computer herzustellen, ohne eine tatsächliche Netzwerkschnittstelle zu verwenden. Siehe http://en.wikipedia.org/wiki/Loopback#Virtual_network_interface

Verwandte Themen