From b51cca53470898bb3c278dcd8cf13bd0bfa22a18 Mon Sep 17 00:00:00 2001 From: cynic Date: Fri, 14 Jun 2024 05:25:27 +0000 Subject: [PATCH] check for ip in reverse proxy header --- cmd/whoami/main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/whoami/main.go b/cmd/whoami/main.go index 00ae846..2eb5fbf 100644 --- a/cmd/whoami/main.go +++ b/cmd/whoami/main.go @@ -20,8 +20,14 @@ func domainFromIP(target net.IP) string { // handle HTTP requests func handler(w http.ResponseWriter, r *http.Request) { + // get client's ip address ip, port, err := net.SplitHostPort(r.RemoteAddr) _, _ = port, err + // check if we're behind a reverse proxy + xForwardedFor := r.Header.Get("X-Forwarded-For") + if xForwardedFor != "" { + ip = xForwardedFor + } parsedIP := net.ParseIP(ip) // return domain for IPv6 only if parsedIP.To4() == nil {