remote_addr没有返回IPv4地址

时间:2010-05-30 15:50:50

标签: php xampp ip-address

我在localhost上使用xampp,当我使用$_SERVER["REMOTE_ADDR"]时,它返回::1(也在phpinfo()中执行此操作)。为什么这样做?我希望它返回像127.0.0.1这样的普通IP地址。我的操作系统是windows vista。

4 个答案:

答案 0 :(得分:10)

::1IPv6 address,是0:0:0:0:0:0:0:1的缩写,是本地计算机的loopback address。因此,::1仅与127.0.0.1相同,仅通过IPv6而非IPv4。

答案 1 :(得分:8)

默认情况下,您的apache正在监听IPv6个连接(::1local 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在其中一个更新中完成(也许)。