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 {