it-swarm.com.de

Sollte ein MAMP :: 1 als IP auf localhost zurückgeben?

Ich muss die IP eines Benutzers abrufen. Mein localhost gibt ::1 als IP zurück. Ich bin gespannt, ob dies ein erwartetes Verhalten ist. Ich lasse MAMP auf Snow Leopard laufen.

33
Mild Fuzz

Dieselbe Frage, und eine gültige Lösung gefunden, getestet, funktioniert gut. Ich wollte auch das ip addy - von 127.0.0.1, anstatt das :: 1 akzeptieren zu müssen und die gesamten IPv4/6-Probleme zu diskutieren. Also trollte ich für ein paar Momente und fiel auf einen Kommentar von 2008 aus @Brad - hier: http://board.issociate.de/thread/489575/SERVERquotREMOTEADDRquot-returning-1.html

Zusammenfassend - (unter Mac OS - insbesondere Mountain Lion)

Sudo vi /etc/Apache2/httpd.conf

Finden Sie heraus, wo Ihr Apache die ips/ports usw. abhört ... Normalerweise ist dies eine Zeile, die so aussieht

Listen 80

Lass es so aussehen:

Listen 127.0.0.1:80

Erneut speichern . Apache neu starten . Voila!

Jetzt sieht $_SERVER[REMOTE_ADDR] so aus 127.0.0.1.

Hoffe es hilft jemandem.

38
Bill Ortell

::1 ist das IPv6-Äquivalent der IPv4-127.0.0.1-Adresse.

Sie können die IPv6-Adresse mit der Funktion inet_ntop() in eine IPv4-Adresse umwandeln, wie Adam sagte.

http://php.net/manual/de/function.inet-ntop.php

31

Das Ändern von /etc/Apache2/httpd.conf oder sogar /private/etc/hosts ist keine Lösung. Es gibt :: 1 zurück, weil es das IPv6-Äquivalent zum 127.0.0.1 des alten (aber goldenen) IPv4 ist. Wie in /privates/etc/hosts definiert, wird bei jedem Zugriff auf http://localhost IPv6 :: 1 angenommen. Es ist also das erwartete Verhalten.

Eine Problemumgehung wäre, direkt auf http://127.0.0.1 zuzugreifen. Es wird gut funktionieren. Denken Sie jedoch daran, dass die Verfügbarkeit von IPv6 zunimmt. Sie können sicherstellen, dass Ihr Server (nach der Bereitstellung) nur auf IPv4 reagiert. Wenn Ihre Site/Web-App jedoch sowohl IPv4 als auch IPv6 nicht ordnungsgemäß verarbeitet, besteht eine große Chance, dass innerhalb von 1/2 Jahren etwas schief geht. Oder früher wissen wir nie.

5
Isaias Soares

wer dieses Problem noch nicht gelöst hat, hört sich an, dass die hosts-Datei oder die Zeile fehlt

127.0.0.1       localhost   

in etc\hosts LINUX 

in /private/etc/hosts MAC-Geräten

in \%WINDIR%\system32\drivers\etc\hosts WINDOWS xp/Vista/7/8 /

wenn die Datei hosts entfernt wird oder missed oder auch die Zeile, wird der IPV6 von default gesetzt.

2
K3rnel31

Sie müssen die IPv6-Unterstützung in Ihrem Betriebssystem für Apache deaktivieren, damit diese IPv6-Adressen nicht mehr angezeigt werden, wenn Sie das IPv4-Format verwenden möchten. Ich habe die IPv6-Unterstützung deaktiviert und funktioniert jetzt wie erwartet.

Ich bin kürzlich auf dieses Problem gestoßen, obwohl ich mich nie daran erinnern kann, dass die Aktivierung der IPv6-Unterstützung auf meinem Windows 7-System von Microsoft in einem ihrer Updates (möglicherweise) durchgeführt werden konnte.

0
Zubair1