【问题标题】:remote_addr not returning IPv4 addressremote_addr 不返回 IPv4 地址
【发布时间】:2011-02-25 17:28:14
【问题描述】:

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

【问题讨论】:

    标签: php xampp ip-address


    【解决方案1】:

    ::1 是 IPv6 address 和 0:0:0:0:0:0:0:1 的缩写,即本地计算机的 loopback address。所以::1 与127.0.0.1 相同,只是通过 IPv6 而不是 IPv4。

    【讨论】:

      【解决方案2】:

      默认情况下,您的 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
      

      【讨论】:

        【解决方案3】:

        转到 XAMPP 控制面板。打开 Apache(httpd.conf),可以在第一行找到,即 Apache 模块的操作。去听(你可以 Ctrl + F 这个),它显示 80(如果你有 ipv6 活动)将它更改为 Listen 0.0.0.0:80,你就完成了。 重新启动 Apache,您将不再在浏览器中看到 ::1。这将愉快地返回您的本地主机,即127.0.0.1

        【讨论】:

          【解决方案4】:

          当您需要 IPv4 格式时,您必须在您的操作系统中禁用 IPv6 支持,以使 apache 停止显示这些 IPv6 格式地址。我禁用了 IPv6 支持,它现在按预期工作。

          以下禁用 IPv6 的说明可能会有所帮助,http://support.microsoft.com/kb/929852

          您知道我遵循了上述链接中描述的步骤,并且我使用的是 Windows 7 而不是 Vista,尽管我怀疑可能存在任何或许多差异。

          我最近遇到了这个问题,虽然我不记得在我的系统上启用了 ipv6 支持,但可以由 Microsoft 在他们的更新之一中完成(也许)。

          【讨论】:

            猜你喜欢
            • 2016-04-10
            • 1970-01-01
            • 2015-06-19
            • 2012-01-03
            • 1970-01-01
            • 2017-07-03
            • 2017-04-28
            • 2013-09-18
            • 2016-09-20
            相关资源
            最近更新 更多