diff --git a/src/main.rs b/src/main.rs index 4cc8ce8..8da0dc2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,11 +34,15 @@ async fn word() -> String { } async fn log_ip(req: Request, next: Next) -> Response { - let mut head = "x-forwarded-for"; + let mut head = "REMOTE_ADDR"; let ip = req .headers() .get(head) .and_then(|hv| hv.to_str().ok()) + .or_else(|| { + head = "HTTP_CLIENT_IP"; + req.headers().get(head).and_then(|hv| hv.to_str().ok()) + }) .or_else(|| { head = "x-real-ip"; req.headers().get(head).and_then(|hv| hv.to_str().ok()) @@ -47,6 +51,14 @@ async fn log_ip(req: Request, next: Next) -> Response { head = "cf-connection-ip"; req.headers().get(head).and_then(|hv| hv.to_str().ok()) }) + .or_else(|| { + head = "HTTP_X_FORWARDED_FOR"; + req.headers().get(head).and_then(|hv| hv.to_str().ok()) + }) + .or_else(|| { + head = "HTTP_FORWARDED_FOR"; + req.headers().get(head).and_then(|hv| hv.to_str().ok()) + }) .unwrap_or("Unknown"); if format!("{ip}") == "Unknown" {