PHP - 将 IP 地址输出为 127.0.0.1

3

我对PHP相当新手。

我想要在我的网页上显示我通过HotSpot Shield获得的IP地址(仅限于我自己,我已经修改了hosts文件以访问HotSpot Shield网页),但不幸的是,它被回显为127.0.0.1。主要目标是连接后,在页面上回显设置给我的IP地址。这是我使用的代码:

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

唯一的问题是$rmt是127.0.0.1。你们当中是否有人知道如何获取公共IP地址并将其显示出来?
3个回答

4

这种情况可能发生在本地代理服务器上;您可以通过var_dump($ _SERVER);查看发送的其他标题,并搜索类似于X-Forwarded-ForX-Real-IP的内容。


好主意。我没有想到那个。我只是假设 OP 在本地运行所有东西。如果不是这种情况,那么这值得一试! - Simon Forsberg

1

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

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


1

我遇到了完全相同的问题。 事实证明,我获取的是代理 IP 地址而不是我的本机 IP 地址。 因此,我运行了以下命令:

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

然后寻找类似于这样的东西:
 ["HTTP_X_REAL_IP"]

然后像这样将它捕获到一个变量中:
$ip = getenv('HTTP_X_REAL_IP')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接