【发布时间】:2011-02-25 17:28:14
【问题描述】:
我在 localhost 上使用 xampp,当我使用 $_SERVER["REMOTE_ADDR"] 时,它返回 ::1(在 phpinfo() 中也是如此)。为什么这样做?我希望它返回一个正常的 IP 地址,如 127.0.0.1。我的操作系统是 windows vista。
【问题讨论】:
标签: php xampp ip-address
我在 localhost 上使用 xampp,当我使用 $_SERVER["REMOTE_ADDR"] 时,它返回 ::1(在 phpinfo() 中也是如此)。为什么这样做?我希望它返回一个正常的 IP 地址,如 127.0.0.1。我的操作系统是 windows vista。
【问题讨论】:
标签: php xampp ip-address
::1 是 IPv6 address 和 0:0:0:0:0:0:0:1 的缩写,即本地计算机的 loopback address。所以::1 与127.0.0.1 相同,只是通过 IPv6 而不是 IPv4。
【讨论】:
默认情况下,您的 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
【讨论】:
转到 XAMPP 控制面板。打开 Apache(httpd.conf),可以在第一行找到,即 Apache 模块的操作。去听(你可以 Ctrl + F 这个),它显示 80(如果你有 ipv6 活动)将它更改为 Listen 0.0.0.0:80,你就完成了。
重新启动 Apache,您将不再在浏览器中看到 ::1。这将愉快地返回您的本地主机,即127.0.0.1
【讨论】:
当您需要 IPv4 格式时,您必须在您的操作系统中禁用 IPv6 支持,以使 apache 停止显示这些 IPv6 格式地址。我禁用了 IPv6 支持,它现在按预期工作。
以下禁用 IPv6 的说明可能会有所帮助,http://support.microsoft.com/kb/929852
您知道我遵循了上述链接中描述的步骤,并且我使用的是 Windows 7 而不是 Vista,尽管我怀疑可能存在任何或许多差异。
我最近遇到了这个问题,虽然我不记得在我的系统上启用了 ipv6 支持,但可以由 Microsoft 在他们的更新之一中完成(也许)。
【讨论】: