use cloudflare real IP (#10449)

This commit is contained in:
sean-brydon
2023-07-28 15:11:44 +00:00
committed by GitHub
parent 2c2fd14050
commit 878f074cb6
+8 -2
View File
@@ -10,8 +10,14 @@ export function parseIpFromHeaders(value: string | string[]) {
* @see https://github.com/vercel/examples/blob/main/edge-functions/ip-blocking/lib/get-ip.ts
**/
export default function getIP(request: Request | NextApiRequest) {
const xff =
request instanceof Request ? request.headers.get("x-forwarded-for") : request.headers["x-forwarded-for"];
let xff =
request instanceof Request
? request.headers.get("cf-connecting-ip")
: request.headers["cf-connecting-ip"];
if (!xff) {
xff = request instanceof Request ? request.headers.get("x-real-ip") : request.headers["x-real-ip"];
}
return xff ? parseIpFromHeaders(xff) : "127.0.0.1";
}