我的服务器位于代理后面,我正在尝试获取我在 PHP 中使用的用户的 IP
$IP = $_SERVER['HTTP_X_FORWARDED_FOR'];
我最近看到的问题是,一些用户的 Ip 类似于下面的示例 Ip。
173.0.0.000, 190.000.00.01
173.0.0.000, 190.000.00.02
173.0.0.000, 190.000.00.03
173.0.0.000, 190.000.00.04
173.0.0.000, 190.000.00.05
我该如何获取正确的 IP,如下所示。并非所有 Ip 都会发生这种情况。
最佳答案
X-Forwarded-For
的格式为:client1, proxy1, proxy2。因此,您需要获取列表中的第一个地址:
$IP = current(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
echo $IP; // 173.0.0.000
无论有多个地址还是只有一个,这都会获取第一个 IP 地址。
关于PHP获取正确的IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627582/