3

我是 PHP 的新手。

我希望在使用 HotSpot shield 显示在我的网页上时,我(仅我自己。我为 HotSpot shield 网页修改了我的 hosts 文件)提供了 IP 地址,但不幸的是,它被回显为 127.0.0.1。主要目标是当我连接时,我设置的 IP 地址会在页面上回显。这是我使用的代码:

<?php $rmt = $_SERVER["REMOTE_ADDR"]; echo "$rmt \n" ?>

唯一的问题是 $rmt 是 127.0.0.1。你们中有人知道如何让它显示要显示的公共 IP 地址吗?

4

3 回答 3

4

这可能发生在本地代理服务器上;您可以查看与您的请求一起发送的其他标头var_dump($_SERVER);并搜索类似X-Forwarded-ForX-Real-IP

于 2012-05-13T11:36:14.930 回答
1

$_SERVER['REMOTE_ADDR']指的是您连接的IP地址。如果您在本地计算机上运行服务器并从本地计算机连接,它使用您的本地 IP(127.0.0.1 始终是“localhost”)。

为了显示不同的 ip,您需要在另一台服务器(最好是公共网络酒店服务器)上运行它,或者从另一台机器连接到您的服务器。

于 2012-05-13T11:37:31.417 回答
1

我也有同样的问题。事实证明,我得到的是代理 IP 地址而不是我自己的 IP。所以我跑了:

var_dump($_SERVER) 
//you could also use print_r($_SERVER);

然后寻找这样的东西:

 ["HTTP_X_REAL_IP"]

然后将其捕获到这样的 var 中:

$ip = getenv('HTTP_X_REAL_IP')
于 2015-07-07T01:50:34.293 回答