From c8e3cf8552731b5ae1c631acacb48b738571bc6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Mon, 17 Nov 2025 20:39:34 +0100 Subject: [PATCH] test headers --- apps/public/app/api/headers/route.ts | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 apps/public/app/api/headers/route.ts diff --git a/apps/public/app/api/headers/route.ts b/apps/public/app/api/headers/route.ts new file mode 100644 index 00000000..f9440fea --- /dev/null +++ b/apps/public/app/api/headers/route.ts @@ -0,0 +1,29 @@ +import { NextResponse } from 'next/server'; + +const IP_HEADER_ORDER = [ + 'cf-connecting-ip', + 'true-client-ip', + 'x-vercel-forwarded-for', // Vercel-specific, most reliable on Vercel + 'x-forwarded-for', // Standard proxy header (first IP in chain) + 'x-real-ip', // Alternative header + 'x-client-ip', + 'fastly-client-ip', + 'do-connecting-ip', + 'x-cluster-client-ip', +]; + +export const GET = function POST(req: Request) { + return NextResponse.json({ + headers: Object.fromEntries(req.headers), + ips: IP_HEADER_ORDER.reduce( + (acc, header) => { + const value = req.headers.get(header); + if (value) { + acc[header] = value; + } + return acc; + }, + {} as Record, + ), + }); +};