diff --git a/src/utils/network_utils.rs b/src/utils/network_utils.rs index 5cb251d..7b0842e 100644 --- a/src/utils/network_utils.rs +++ b/src/utils/network_utils.rs @@ -25,16 +25,13 @@ pub fn get_remote_ip(req: &HttpRequest, proxy_ip: Option<&str>) -> String { if let Some(proxy) = proxy_ip.as_ref() { if match_ip(proxy, &ip) { if let Some(header) = req.headers().get("X-Forwarded-For") { - let header: Vec = header + let header = header .to_str() .unwrap() - .to_string() - .split(',') - .map(|f| f.to_string()) - .collect(); + .split_once(','); - if !header.is_empty() { - ip = header[0].to_string(); + if let Some((upstream_ip, _)) = header { + ip = upstream_ip.to_string(); } } }