PHP获取正确的IP

标签 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 都会发生这种情况。

最佳答案

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/

相关文章:

php - 将行分组为一行的学说和 SUM 数量不起作用

php - Laravel 搜索属于

regex - 我想更改我的网址 (htaccess)

linux - 从 "yum install httpd"和 "source"安装 apache 有什么区别?

java - 我在 : Cookie name "ctx:1420m06d05" is a reserved token 之前从未见过这个错误

php - 什么是最低有效 WSDL?

php - 如何在 php 中创建一个填充前四个星期的下拉菜单

php - 在 CakePHP 中查询更新数据

javascript - 使用 ajax/setInterval 伪造推送通知?

Apache Solr - 过滤器查询中的 OR