// ===================================================== // IP 調試 API // ===================================================== import { NextRequest, NextResponse } from 'next/server'; import { smartIPDetector } from '@/lib/smart-ip-detector'; export async function GET(request: NextRequest) { try { // 使用智能 IP 偵測器 const ipDetection = smartIPDetector.detectClientIP(request); // 收集所有可能的 IP 信息 const ipInfo = { // 智能偵測結果 smartDetection: ipDetection, // 請求標頭 headers: { 'x-forwarded-for': request.headers.get('x-forwarded-for'), 'x-real-ip': request.headers.get('x-real-ip'), 'cf-connecting-ip': request.headers.get('cf-connecting-ip'), 'x-client-ip': request.headers.get('x-client-ip'), 'x-forwarded': request.headers.get('x-forwarded'), 'x-cluster-client-ip': request.headers.get('x-cluster-client-ip'), 'x-original-forwarded-for': request.headers.get('x-original-forwarded-for'), 'x-remote-addr': request.headers.get('x-remote-addr'), 'remote-addr': request.headers.get('remote-addr'), 'client-ip': request.headers.get('client-ip'), 'user-agent': request.headers.get('user-agent'), 'host': request.headers.get('host'), }, // NextRequest 的 IP nextRequestIP: request.ip, // 環境變數 env: { NODE_ENV: process.env.NODE_ENV, VERCEL: process.env.VERCEL, VERCEL_REGION: process.env.VERCEL_REGION, }, // 所有標頭(用於調試) allHeaders: Object.fromEntries(request.headers.entries()), }; return NextResponse.json({ success: true, message: 'IP 調試信息獲取成功', data: ipInfo, timestamp: new Date().toISOString() }); } catch (error) { console.error('❌ IP 調試 API 錯誤:', error); return NextResponse.json({ success: false, error: 'IP 調試失敗', details: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } }