如果MAMP返回:: 1作为本地主机上的IP?
我需要检索用户的IP。 我的本地主机返回::1作为IP。 我很好奇,如果这是一个预期的行为? 我在Snow Leopard上运行MAMP。 
同样的问题,并find一个有效的解决scheme,testing,运作良好。 我希望拥有127.0.0.1的ip addy,而不必接受:: 1并且讨论整个IPv4 / 6的问题。 所以,我拖了一会儿,落到了@Brad发表的2008年评论 – 这里: http ://board.issociate.de/thread/489575/SERVERquotREMOTEADDRquot-returning-1.html
总结 – (在Mac OS上 – 特别是山狮)
 sudo vi /etc/apache2/httpd.conf 
find你的apache是在监听ips / ports等等。通常这将是一个看起来像这样的线
 Listen 80 
使它看起来像这样:
 Listen 127.0.0.1:80 
重新保存它。 重新启动Apache。 瞧!
 现在$_SERVER[REMOTE_ADDR]看起来像这个127.0.0.1 。 
希望它可以帮助别人。
  ::1是IPv4 127.0.0.1地址的IPv6等效项。 
 亚当说,你可以使用函数inet_ntop()将IPv6地址转换为IPv4地址。 
 修改/etc/apache2/httpd.conf甚至/private/etc/hosts不是解决scheme。 它返回:: 1,因为它是与旧的(但黄金)IPv4 127.0.0.1相当的IPv6。 因为它在/privates/etc/hosts定义,所以无论何时访问http://localhost它都会假定IPv6 :: 1。 所以这是预期的行为。 
 解决方法是直接访问http://127.0.0.1 。 它会工作得很好。 但请记住,IPv6的可用性正在增加。 您可以确保您的服务器(部署后)只会对IPv4做出响应,但在中期,如果您的站点/ Web应用程序不能正确处理IPv4和IPv6,那么很可能在1/2年内出现问题。 或者更早,我们永远不知道。 
 谁没有reslove这个问题,这听起来是hosts文件丢失或行 
 127.0.0.1 localhost 
 在etc\hosts LINUX中 
  in /private/etc/hosts MAC设备 
 在\%WINDIR%\system32\drivers\etc\hosts WINDOWS xp / vista / 7/8 / 
 当文件hosts被删除或missed或者IPV6将被default设置为… 
当你需要IPv4格式时,你必须在你的操作系统中禁用IPv6支持,以便apache停止显示这些IPv6格式地址。 我现在禁用了IPv6支持并按预期工作。
我最近遇到了这个问题,虽然我从未记得在我的Windows 7系统上启用ipv6支持,可以由Microsoft在他们的更新(也许)之一完成。