📜  在 laravel 中获取 ip - PHP (1)

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

在 Laravel 中获取 IP

在 Laravel 中获取客户端 IP 是一个常见的需求,本文将介绍如何在 Laravel 中获取 IP 地址。

获取 IP 地址

Laravel 提供了 Request 类,可以从中获取客户端的 IP 地址。只需要调用 ip() 方法即可获取:

public function index(Request $request)
{
    $ip = $request->ip();
    // do something with $ip
}
获取第一个非代理 IP 地址

如果应用程序在反向代理或负载均衡器后面运行,则客户端 IP 地址可能是代理 IP 地址。在这种情况下,需要获取第一个非代理 IP 地址。Laravel 提供了 getClientIp 方法来处理这个问题:

public function index(Request $request)
{
    $ip = $request->getClientIp(true);
    // do something with $ip
}

如果第一个参数为 true,则请求头中的代理地址将被跳过,返回第一个非代理 IP 地址。如果第一个参数为 false,则将返回请求中的第一个 IP 地址。

结论

获取客户端 IP 地址是非常简单的,使用 ip()getClientIp() 方法即可。如果应用程序在反向代理或负载均衡器后面运行,则应使用 getClientIp(true) 方法来获取第一个非代理 IP 地址。