PHP得到正确的IP

时间:2012-05-16 22:21:45

标签: php apache

我的服务器在代理后面,我正在尝试获取我在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上。

1 个答案:

答案 0 :(得分:2)

X-Forwarded-For的格式为: client1,proxy1,proxy2 。因此,您需要获取列表中的第一个地址:

$IP = current(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));

echo $IP; // 173.0.0.000

这将获取第一个IP地址,无论是多个地址还是只有一个地址。