检索 IP 地址

检索客户端当前 IP 地址的最佳方式,是利用使用了类似 rka-ip-address-middleware 这种组件的中间件。

这个组件可以通过 composer 来安装:

composer require akrabat/rka-ip-address-middleware

要使用这个组件,需要使用 App 注册中间件,这里提供了一个可信赖的代理列表(e.g. varnish 服务器), 如果你再使用它们:

$checkProxyHeaders = true;
$trustedProxies = ["10.0.0.1", "10.0.0.2"];
$app->add(new RKAMiddlewareIpAddress($checkProxyHeaders, $trustedProxies));

$app->get("/", function ($request, $response, $args) {
    $ipAddress = $request->getAttribute("ip_address");

    return $response;
});

这个中间件把客户端 IP 地址存储在一个 HTTP 请求属性中,所以需要通过 $request->getAttribute("ip_address") 来访问。

文章导航