hasHeader('CF-Connecting-IP')) { $realIp = $request->header('CF-Connecting-IP'); } // 腾讯云 EdgeOne CDN 自定义回源头部(后台配置名:EO-Client-IP) elseif ($request->hasHeader('EO-Client-IP')) { $realIp = $request->header('EO-Client-IP'); } // 其他国内 CDN 厂商(阿里云 DCDN 等)通用头部 elseif ($request->hasHeader('X-Real-IP')) { $realIp = $request->header('X-Real-IP'); } // 最后兜底:取 X-Forwarded-For 最左边第一个(真实客户端)IP // 格式为 "真实客户端, CDN节点1, CDN节点2" elseif ($request->hasHeader('X-Forwarded-For')) { $realIp = trim(explode(',', $request->header('X-Forwarded-For'))[0]); } if (! empty($realIp)) { $request->server->set('REMOTE_ADDR', $realIp); $request->headers->set('X-Forwarded-For', $realIp); } return $next($request); } }