diff --git a/src/services/ip/mod.rs b/src/services/ip/mod.rs index 7ce49c0..6b981c9 100644 --- a/src/services/ip/mod.rs +++ b/src/services/ip/mod.rs @@ -10,20 +10,19 @@ pub fn routers_list() -> Vec<(&'static str, MethodRouter)> { } pub fn get_client_ip(headers: &HeaderMap) -> Option { - // 1) X-Forwarded-For → first IP - if let Some(val) = headers.get("x-forwarded-for").and_then(|v| v.to_str().ok()) { - if let Some(first) = val.split(',').next() { - if let Ok(ip) = first.trim().parse::() { - return Some(ip); - } - } + // X-Forwarded-For: take the first IP + if let Some(val) = headers.get("x-forwarded-for").and_then(|v| v.to_str().ok()) + && let Some(first) = val.split(',').next() + && let Ok(ip) = first.trim().parse::() + { + return Some(ip); } - // 2) X-Real-IP - if let Some(val) = headers.get("x-real-ip").and_then(|v| v.to_str().ok()) { - if let Ok(ip) = val.trim().parse::() { - return Some(ip); - } + // X-Real-IP + if let Some(val) = headers.get("x-real-ip").and_then(|v| v.to_str().ok()) + && let Ok(ip) = val.trim().parse::() + { + return Some(ip); } None