import { NextResponse } from 'next/server' import type { NextRequest } from 'next/server' import { isIpAllowed, getClientIp } from '@/lib/ip-utils' export function middleware(request: NextRequest) { // 檢查是否啟用IP白名單 const enableIpWhitelist = process.env.ENABLE_IP_WHITELIST === 'true' if (!enableIpWhitelist) { return NextResponse.next() } // 獲取客戶端IP const clientIp = getClientIp(request) // 獲取允許的IP列表 const allowedIps = process.env.ALLOWED_IPS || '' // 檢查IP是否被允許 if (!isIpAllowed(clientIp, allowedIps)) { // 記錄被拒絕的訪問 console.warn(`Access denied for IP: ${clientIp} - Path: ${request.nextUrl.pathname}`) // 返回403禁止訪問頁面 return new NextResponse( `
很抱歉,您的IP地址不在允許的訪問列表中。
如果您認為這是一個錯誤,請聯繫系統管理員。