Si un MAMP retour ::1 IP sur localhost?
J'ai besoin de récupérer une IP de l'utilisateur. Mon localhost est de retour ::1
que l'IP. Je suis curieux de savoir, si c'est un comportement attendu? Je suis en cours d'exécution MAMP sur Snow Leopard.
- double possible de PHP $_SERVER['REMOTE_HOST'] retourne ::1
Vous devez vous connecter pour publier un commentaire.
Même question, et a trouvé une solution valide, testé, fonctionne bien. Je voulais avoir l'ip addy - de 127.0.0.1 ainsi au lieu d'avoir à accepter l' ::1 et de débattre de l'ensemble de l'IPv4/6 questions. Donc, j'ai parcouru quelques instants et est tombé sur un 2008, les commentaires faits par @Brad - ici:
http://board.issociate.de/thread/489575/SERVERquotREMOTEADDRquot-returning-1.html
Résumant - (sur Mac OS Mountain Lion en particulier)
sudo vi /etc/apache2/httpd.conf
Trouver où votre apache "écouter" -ing de l'ip/ports, etc...
Généralement, ce sera une ligne ressemblant à ceci
Listen 80
Faire ressembler à ceci:
Listen 127.0.0.1:80
Enregistrer à nouveau.
Redémarrer Apache.
Voila!
Maintenant
$_SERVER[REMOTE_ADDR]
ressemblera à ceci127.0.0.1
.Espère que cela aide quelqu'un.
127.0.0.1 localhost
de fichier hosts, IPv4 résolution est priorisés sur IPv6 pour le localhost 😉::1
est l'équivalent IPv6 IPv4127.0.0.1
adresse.Vous pouvez convertir une adresse IPv6 pour IPv4 adresse à l'aide de la fonction
inet_ntop()
comme Adam, dit.http://php.net/manual/en/function.inet-ntop.php
inet_ntop
La modification de la
/etc/apache2/httpd.conf
ou même/private/etc/hosts
n'est pas la solution. C'est le retour ::1 parce que c'est l'IPv6 équivalente à l'ancienne (mais l'or) IPv4 est127.0.0.1
. Qu'elle est définie dans le/privates/etc/hosts
, chaque fois que vous accédez àhttp://localhost
il suppose IPv6 ::1. Donc, c'est le comportement attendu.Une solution de contournement serait de l'accès
http://127.0.0.1
directement. Cela fonctionnera parfaitement. Mais rappelez-vous que le protocole IPv6 disponibilité croissante. Vous pourriez assurez-vous que votre serveur (après le déploiement) ne pourra répondre à l'IPv4, mais à moyen terme, si votre site web/application ne permet pas de gérer à la fois IPv4 et IPv6 correctement, il ya une grande chance que quelque chose se passe mal dans 1/2 ans. Ou plus tôt, on ne sait jamais.pour qui n'a pas filtrer cette question, il semble que le
hosts
fichier est manquant ou la lignedans
etc\hosts
LINUXdans
/private/etc/hosts
MAC appareilsdans
\%WINDIR%\system32\drivers\etc\hosts
WINDOWS xp/vista/7/8/whene le fichier
hosts
est supprimé oumissed
ou la la ligne de laIPV6
sera fixé pardefault
...Vous devez désactiver la prise en charge d'IPv6 dans votre système d'exploitation pour apache pour arrêter l'affichage de ces format IPv6 les adresses, si vous souhaitez que le format IPv4. J'ai désactivé la prise en charge d'IPv6 et de son travail comme prévu maintenant.
J'ai récemment rencontré ce problème, mais je n'ai pas souvenir de l'activation du support de l'ipv6 sur mon système Windows 7, qui pourrait être fait par Microsoft dans l'une de leurs mises à jour (peut-être).