Просмотр исходного кода

Merge branch 'donnpebe-fix' into develop

Javier Provecho Fernandez 10 лет назад
Родитель
Сommit
fdc54c9c7f
2 измененных файлов с 6 добавлено и 2 удалено
  1. 5 1
      context.go
  2. 1 1
      context_test.go

+ 5 - 1
context.go

@@ -8,6 +8,7 @@ import (
 	"errors"
 	"io"
 	"math"
+	"net"
 	"net/http"
 	"strings"
 	"time"
@@ -291,7 +292,10 @@ func (c *Context) ClientIP() string {
 			return clientIP
 		}
 	}
-	return strings.TrimSpace(c.Request.RemoteAddr)
+	if ip, _, err := net.SplitHostPort(strings.TrimSpace(c.Request.RemoteAddr)); err == nil {
+		return ip
+	}
+	return ""
 }
 
 // ContentType returns the Content-Type header of the request.

+ 1 - 1
context_test.go

@@ -520,7 +520,7 @@ func TestContextClientIP(t *testing.T) {
 
 	c.Request.Header.Set("X-Real-IP", " 10.10.10.10  ")
 	c.Request.Header.Set("X-Forwarded-For", "  20.20.20.20, 30.30.30.30")
-	c.Request.RemoteAddr = "  40.40.40.40 "
+	c.Request.RemoteAddr = "  40.40.40.40:42123 "
 
 	assert.Equal(t, c.ClientIP(), "10.10.10.10")