/**
 * 从请求中提取真实客户端 IP。
 * 优先级：X-Forwarded-For（取第一个） > X-Real-IP > req.ip
 */
export function getClientIp(req: any): string {
  const xff = req.headers?.['x-forwarded-for'];
  if (xff) {
    const first = typeof xff === 'string' ? xff : xff[0];
    return first.split(',')[0].trim();
  }
  const xri = req.headers?.['x-real-ip'];
  if (xri) {
    return typeof xri === 'string' ? xri : xri[0];
  }
  return req.ip || 'unknown';
}
