random-api-go/utils/utils.go
wood chen 96f41e374f refactor(main, logging, utils): Refactor logging and IP extraction logic
Move setupLogging to logging package and create GetRealIP utility function
2024-10-26 15:46:00 +08:00

29 lines
413 B
Go

package utils
import (
"net"
"net/http"
"strings"
)
func GetRealIP(r *http.Request) string {
ip := r.Header.Get("X-Real-IP")
if ip != "" {
return ip
}
ip = r.Header.Get("X-Forwarded-For")
if ip != "" {
ips := strings.Split(ip, ",")
if len(ips) > 0 {
return strings.TrimSpace(ips[0])
}
}
ip, _, err := net.SplitHostPort(r.RemoteAddr)
if err != nil {
return r.RemoteAddr
}
return ip
}