📜  PHP |获取客户端 ip 简单 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:21.458000             🧑  作者: Mango

PHP | 获取客户端 IP 简介

在开发 Web 应用或者服务器端程序时,经常需要获取客户端的 IP 地址。客户端 IP 地址是指发起请求的用户的 IP 地址,用于识别用户或进行一些安全措施。

以下是使用 PHP 语言获取客户端 IP 的几种常见方法,我们将逐一介绍。

1. 通过 $_SERVER['REMOTE_ADDR']
$ip = $_SERVER['REMOTE_ADDR'];

这是最简单的方法,$_SERVER['REMOTE_ADDR'] 返回当前用户的 IP 地址。然而,这种方法可能会受到代理服务器的影响,尤其是用户使用了代理或者 VPN 服务。

2. 通过 $_SERVER['HTTP_X_FORWARDED_FOR']
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

有时候,通过代理服务器进行访问时,$_SERVER['REMOTE_ADDR'] 可能会返回代理服务器的 IP 地址而不是真实客户端的 IP 地址。这时候,可以使用 $_SERVER['HTTP_X_FORWARDED_FOR'] 获取客户端真实的 IP 地址。然而,需要注意的是,这个方法也可能会被伪造。

3. 通过 $_SERVER['HTTP_CLIENT_IP']
$ip = $_SERVER['HTTP_CLIENT_IP'];

某些情况下,客户端的真实 IP 地址被存储在 $_SERVER['HTTP_CLIENT_IP'] 中。然而,大多数情况下,该值是空的,或者与其他方法返回的值相同。

4. 使用 filter_var() 函数
$ip = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP) ? $_SERVER['REMOTE_ADDR'] : '';

使用 filter_var() 函数可以进行 IP 地址的验证。上述代码将先验证 $_SERVER['REMOTE_ADDR'] 的 IP 地址格式,若合法则返回,否则返回空字符串。

注意:无论使用哪种方法,返回的 IP 地址可能受到用户伪造或代理服务器的影响,不一定是真实的客户端 IP 地址。

这些是获取客户端 IP 的一些常用方法。开发者可以根据实际需求选择适合的方法来获取 IP 地址。

希望对你有所帮助!