From 938be8949fbb9735953309611c73589be04a2ccb Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Sun, 7 Apr 2024 21:06:21 -0400 Subject: Use proper IP address when behind proxy --- src/get.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/get.rs b/src/get.rs index efe2711..a00ac48 100644 --- a/src/get.rs +++ b/src/get.rs @@ -41,7 +41,21 @@ pub async fn id_unix( Extension(state): Extension, Path(id): Path, ) -> impl IntoResponse { - let ip = format!("{:?}", addr.peer_addr); + let ip = if state.behind_proxy { + match headers.get("x-real-ip") { + Some(it) => { + if let Ok(i) = it.to_str() { + Some(i.to_string()) + } else { + None + } + } + None => None, + } + } else { + Some(format!("{:?}", addr.peer_addr)) + } + .unwrap_or_default(); run_id(headers, ip, state, id).await } -- cgit v1.2.3