Fix usercounter behind cloudflare

This commit is contained in:
Ajay
2024-02-27 03:33:38 -05:00
parent aec2aa4457
commit 9bcceb7e5b
2 changed files with 6 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ import { config } from "../config";
import { Request } from "express";
import { IPAddress } from "../types/segments.model";
export function getIP(req: Request): IPAddress {
export function getIP(req: Request, checkCloudflare = false): IPAddress {
// if in testing mode, return immediately
if (config.mode === "test") return "127.0.0.1" as IPAddress;
@@ -10,11 +10,14 @@ export function getIP(req: Request): IPAddress {
config.behindProxy = "X-Forwarded-For";
}
const cloudflareIP = req.headers["cf-connecting-ip"] as IPAddress;
if (checkCloudflare && cloudflareIP) return cloudflareIP;
switch (config.behindProxy as string) {
case "X-Forwarded-For":
return req.headers["x-forwarded-for"] as IPAddress;
case "Cloudflare":
return req.headers["cf-connecting-ip"] as IPAddress;
return cloudflareIP;
case "X-Real-IP":
return req.headers["x-real-ip"] as IPAddress;
default: