📅  最后修改于: 2023-12-03 15:10:41.548000             🧑  作者: Mango
有时候需要从 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 开发者们。