检索 IP 地址

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

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

  1. composer require akrabat/rka-ip-address-middleware

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

  1. $checkProxyHeaders = true;
  2. $trustedProxies = ['10.0.0.1', '10.0.0.2'];
  3. $app->add(new RKA\Middleware\IpAddress($checkProxyHeaders, $trustedProxies));
  4. $app->get('/', function ($request, $response, $args) {
  5. $ipAddress = $request->getAttribute('ip_address');
  6. return $response;
  7. });

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