chore: Refactor IP address retrieval logic in main.go

This commit is contained in:
skidoodle 2024-06-13 12:34:13 +02:00
parent 7e607bf733
commit f4b529eb7f

View file

@ -188,13 +188,14 @@ func handler(w http.ResponseWriter, r *http.Request) {
}
if IPAddress == "" || IPAddress == "self" {
if realIP, ok := r.Header["X-Forwarded-For"]; ok && len(realIP) > 0 {
IPAddress = realIP[0]
if realIP := r.Header.Get("CF-Connecting-IP"); realIP != "" {
IPAddress = realIP
} else if realIP := r.Header.Get("X-Forwarded-For"); realIP != "" {
IPAddress = strings.Split(realIP, ",")[0]
} else {
IPAddress = extractIP(r.RemoteAddr)
}
}
ip := net.ParseIP(IPAddress)
if ip == nil {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")