检索 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 RKA\Middleware\IpAddress($checkProxyHeaders, $trustedProxies));
$app->get('/', function ($request, $response, $args) {
$ipAddress = $request->getAttribute('ip_address');
return $response;
});
这个中间件把客户端 IP 地址存储在一个 HTTP 请求属性中,所以需要通过 $request->getAttribute('ip_address')
来访问。