From b1d6bb97a66fbc3e692853124ff222f928c8d278 Mon Sep 17 00:00:00 2001 From: Douglas Barone Date: Tue, 24 Oct 2023 07:40:07 -0400 Subject: [PATCH] Use x-forwarded-for --- src/server/lib/getIpFromContext.ts | 7 +++++-- src/server/trpc.ts | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/server/lib/getIpFromContext.ts b/src/server/lib/getIpFromContext.ts index 78d6a07..a4beac6 100644 --- a/src/server/lib/getIpFromContext.ts +++ b/src/server/lib/getIpFromContext.ts @@ -3,8 +3,11 @@ import { Context } from '../trpc' export function getIpFromContext(ctx: Context) { if (process.env.NODE_ENV === 'development') return '10.7.16.254' - const ip = ctx.ip.split(':').slice(-1)[0] - // console.log(`IP: ${ip}`) + let ip: string + + if (ctx.headers['x-forwarded-for']) + ip = ctx.headers['x-forwarded-for'][0].split(',').shift() || '' + else ip = ctx.ip.split(':').slice(-1)[0] return ip } diff --git a/src/server/trpc.ts b/src/server/trpc.ts index 1761a5d..1a9131d 100644 --- a/src/server/trpc.ts +++ b/src/server/trpc.ts @@ -9,7 +9,7 @@ import { PaFirewall } from './services/PaFirewall' // Created for each request function createContext({ req, res }: trpcExpress.CreateExpressContextOptions) { - return { ip: req.ip } + return { ip: req.ip, headers: req.headers } } export type Context = inferAsyncReturnType