From f1a8819fa76ed918703fe63dbd730fc4aa46599f Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 19 Nov 2012 23:45:51 +0100 Subject: [PATCH] Read X-Real-IP header if set --- ifconfig.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ifconfig.go b/ifconfig.go index 9bd8417..467bee5 100644 --- a/ifconfig.go +++ b/ifconfig.go @@ -26,7 +26,14 @@ func handler(w http.ResponseWriter, req *http.Request) { return } - host, _, err := net.SplitHostPort(req.RemoteAddr) + var host string + var err error + realIP := req.Header.Get("X-Real-IP") + if realIP != "" { + host = realIP + } else { + host, _, err = net.SplitHostPort(req.RemoteAddr) + } if err != nil { log.Printf("Failed to parse remote address: %s\n", req.RemoteAddr) http.Error(w, "Failed to parse remote address", 500)