📜  来自 post 请求的 php 用户 ip - PHP (1)

📅  最后修改于: 2023-12-03 15:10:41.548000             🧑  作者: Mango

来自 post 请求的 php 用户 ip - PHP

有时候需要从 post 请求中获取用户的 ip 地址。在 PHP 中,可以使用 $_SERVER 超全局变量来获取用户的 ip 地址。

$ip = $_SERVER['REMOTE_ADDR'];

在上面的例子中,$_SERVER['REMOTE_ADDR'] 会返回发出请求的客户端的 ip 地址。

除了 $_SERVER['REMOTE_ADDR'],还有其他一些相关的 $_SERVER 变量可以用于获取用户的 ip 地址。以下是一些例子:

  • $ip = $_SERVER['HTTP_CLIENT_IP']; 如果用户是通过代理服务器连接的话,这个变量会返回代理服务器的 ip 地址。
  • $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 如果用户是使用反向代理服务器连接的话,这个变量会返回真实的 ip 地址。

但需要注意的是,这些变量不一定都会存在,因此在获取用户的 ip 地址时需要进行相应的判断。

在实际使用中,可以定义一个函数来封装获取用户 ip 地址的过程,并在需要的地方调用。

以下是一个示例函数:

function get_client_ip()
{
    if (isset($_SERVER['HTTP_CLIENT_IP']) && ! empty($_SERVER['HTTP_CLIENT_IP'])) {
        return $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && ! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        return $_SERVER['REMOTE_ADDR'];
    }
}

通过调用上面的函数,即可获取当前用户的 ip 地址。

希望这篇介绍可以帮助到 PHP 开发者们。