我在localhost上使用xampp,当我使用$_SERVER["REMOTE_ADDR"]
时,它返回::1
(也在phpinfo()
中执行此操作)。为什么这样做?我希望它返回像127.0.0.1这样的普通IP地址。我的操作系统是windows vista。
答案 0 :(得分:10)
::1
是IPv6 address,是0:0:0:0:0:0:0:1
的缩写,是本地计算机的loopback address。因此,::1
仅与127.0.0.1
相同,仅通过IPv6而非IPv4。
答案 1 :(得分:8)
默认情况下,您的apache正在监听IPv6个连接(::1
为local loopback)。如果您真的只想要IPv4,请尝试在apache配置中禁用禁用IPv6连接:
如果您希望Apache仅处理IPv4连接,无论您的平台和APR支持什么,请在所有Listen指令上指定IPv4地址,如以下示例所示:
Listen 0.0.0.0:80
Listen 192.170.2.1:80
答案 2 :(得分:3)
转到XAMPP控制面板。打开Apache(httpd.conf),可以在第一行找到,即Apache Module的Actions。去听(你可以按Ctrl + F这个)显示80(如果你有ipv6激活)将它改为Listen 0.0.0.0:80
,你就完成了。
重新启动Apache,您将不再在浏览器中看到::1
。这将很高兴地返回您的本地主机,即127.0.0.1
答案 3 :(得分:-2)
当您需要IPv4格式时,必须在操作系统中禁用IPv6支持以使apache停止显示这些IPv6格式地址。我禁用了IPv6支持,并且它现在按预期工作。
以下有关禁用IPv6的说明可能会有所帮助,http://support.microsoft.com/kb/929852
您知道我按照上述链接中描述的步骤操作,我使用的是Windows 7而不是Vista,但我怀疑可能存在任何或许多差异。
我最近遇到过这个问题,虽然我永远不会记得在我的系统上启用ipv6支持,可以由Microsoft在其中一个更新中完成(也许)。