Browse Source

use strings.Split instead of strings.IndexByte (#1406)

田欧 7 years ago
parent
commit
8035359102
1 changed files with 3 additions and 7 deletions
  1. 3 7
      context.go

+ 3 - 7
context.go

@@ -539,14 +539,10 @@ func (c *Context) ShouldBindBodyWith(
 func (c *Context) ClientIP() string {
 func (c *Context) ClientIP() string {
 	if c.engine.ForwardedByClientIP {
 	if c.engine.ForwardedByClientIP {
 		clientIP := c.requestHeader("X-Forwarded-For")
 		clientIP := c.requestHeader("X-Forwarded-For")
-		if index := strings.IndexByte(clientIP, ','); index >= 0 {
-			clientIP = clientIP[0:index]
+		clientIP = strings.TrimSpace(strings.Split(clientIP, ",")[0])
+		if clientIP == "" {
+			clientIP = strings.TrimSpace(c.requestHeader("X-Real-Ip"))
 		}
 		}
-		clientIP = strings.TrimSpace(clientIP)
-		if clientIP != "" {
-			return clientIP
-		}
-		clientIP = strings.TrimSpace(c.requestHeader("X-Real-Ip"))
 		if clientIP != "" {
 		if clientIP != "" {
 			return clientIP
 			return clientIP
 		}
 		}