diff --git a/gin.go b/gin.go index 2e033bf3..02ff5b25 100644 --- a/gin.go +++ b/gin.go @@ -11,6 +11,7 @@ import ( "net/http" "os" "path" + "slices" "strings" "sync" @@ -484,8 +485,8 @@ func (engine *Engine) validateHeader(header string) (clientIP string, valid bool return "", false } items := strings.Split(header, ",") - for i := len(items) - 1; i >= 0; i-- { - ipStr := strings.TrimSpace(items[i]) + for i, item := range slices.Backward(items) { + ipStr := strings.TrimSpace(item) ip := net.ParseIP(ipStr) if ip == nil { break