当前位置: 首页 > 工具软件 > IP PHP Class > 使用案例 >

hyperf获取客户端真实ip

卢阳成
2023-12-01

        hyperf框架获取客户端真实ip

具体看公司nginx代理的配置,如果$request->getServerParams();获取不到,可以尝试$request->getHeaders();

use Hyperf\Utils\ApplicationContext;
use Hyperf\HttpServer\Contract\RequestInterface;


    function getRealIp(): string
    {
        $request = ApplicationContext::getContainer()->get(RequestInterface::class);
        $headers = $request->getHeaders();

        if(isset($headers['x-forwarded-for'][0]) && !empty($headers['x-forwarded-for'][0])) {
            return $headers['x-forwarded-for'][0];
        } elseif (isset($headers['x-real-ip'][0]) && !empty($headers['x-real-ip'][0])) {
            return $headers['x-real-ip'][0];
        }

        $serverParams = $request->getServerParams();
        return $serverParams['remote_addr'] ?? '';

    }
 类似资料: