web-dev-qa-db-fra.com

Un MAMP doit-il renvoyer :: 1 en tant qu'IP sur localhost?

J'ai besoin de récupérer l'adresse IP d'un utilisateur. Mon hôte local renvoie ::1 en tant qu'IP. Je suis curieux, si c'est un comportement attendu? Je lance MAMP sur Snow Leopard.

33
Mild Fuzz

Même question, et j'ai trouvé une solution valide, testée, qui fonctionne bien. Je voulais aussi avoir l'adresse IP addy - de 127.0.0.1 au lieu d'avoir à accepter le the :: 1 et à débattre de l'ensemble des problèmes liés à IPv4/6. Alors, j'ai traîné quelques instants et suis tombé sur un commentaire de 2008 de @Brad - ici: http://board.issociate.de/thread/489575/SERVERquotREMOTEADDRquot-returning-1.html

Résumer - (sur Mac OS - Mountain Lion en particulier)

Sudo vi /etc/Apache2/httpd.conf

Trouvez où votre Apache "écoute" les ips/ports, etc ... Ce sera typiquement une ligne ressemblant à ceci

Listen 80

Faites-le ressembler à ceci:

Listen 127.0.0.1:80

Réenregistrez-le .. Redémarrez Apache .. Voilà!

Maintenant, $_SERVER[REMOTE_ADDR] ressemblera à ceci 127.0.0.1.

J'espère que ça aide quelqu'un.

38
Bill Ortell

::1 est l'équivalent IPv6 de l'adresse IPv4 127.0.0.1.

Vous pouvez convertir une adresse IPv6 en une adresse IPv4 en utilisant la fonction inet_ntop() comme Adam, a déclaré.

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

31
Tomasz Kowalczyk

La modification du /etc/Apache2/httpd.conf ou même du /private/etc/hosts n'est pas la solution. Il retourne :: 1 parce que c'est l'équivalent IPv6 de l'ancien 127.0.0.1 (mais d'or) d'IPv4. Comme défini dans le /privates/etc/hosts, chaque fois que vous accédez à http://localhost, cela suppose que IPv6 :: 1. C'est donc le comportement attendu.

Une solution de contournement consisterait à accéder directement à http://127.0.0.1. Cela fonctionnera très bien. Mais rappelez-vous que la disponibilité IPv6 augmente. Vous pouvez vous assurer que votre serveur (après le déploiement) répondra uniquement à IPv4, mais à moyen terme, si votre site/application Web ne gère pas correctement les protocoles IPv4 et IPv6, il est fort probable que quelque chose se passe mal, dans un an et demi. Ou plus tôt, on ne sait jamais.

5
Isaias Soares

pour qui n'a pas encore résolu ce problème, il semble que le fichier hosts soit manquant ou que la ligne

127.0.0.1       localhost   

dans etc\hosts LINUX 

en /private/etc/hosts périphériques MAC

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

lorsque le fichier hosts est supprimé ou missed ou la ligne aussi le IPV6 sera défini par default ...

2
K3rnel31

Vous devez désactiver la prise en charge IPv6 dans votre système d'exploitation pour qu'Apache cesse d'afficher ces adresses au format IPv6 lorsque vous souhaitez utiliser le format IPv4. J'ai désactivé le support IPv6 et il fonctionne comme prévu maintenant.

J'ai récemment rencontré ce problème, bien que je ne me souvienne jamais d'avoir activé la prise en charge d'ipv6 sur mon système Windows 7, Microsoft pourrait le faire dans l'une de leurs mises à jour (peut-être).

0
Zubair1