mirror of
https://github.com/gin-gonic/gin.git
synced 2026-09-11 03:48:05 +08:00
Merge 668da512661be305ff9c102e643a89b75d86a1a2 into 34dac209ffb6ef85cc78c5d217bbb7ad001d68fd
This commit is contained in:
commit
c0c3626a36
8
gin.go
8
gin.go
@ -486,6 +486,14 @@ func (engine *Engine) validateHeader(header string) (clientIP string, valid bool
|
||||
items := strings.Split(header, ",")
|
||||
for i := len(items) - 1; i >= 0; i-- {
|
||||
ipStr := strings.TrimSpace(items[i])
|
||||
// Handle [IPv6]:port or IPv4:port notation (e.g., [::1]:38792, 192.168.1.1:38792)
|
||||
if host, _, err := net.SplitHostPort(ipStr); err == nil {
|
||||
ipStr = host
|
||||
}
|
||||
// Strip brackets around bare IPv6 addresses (e.g., [::1] -> ::1)
|
||||
if len(ipStr) > 0 && ipStr[0] == '[' {
|
||||
ipStr = strings.Trim(ipStr, "[]")
|
||||
}
|
||||
ip := net.ParseIP(ipStr)
|
||||
if ip == nil {
|
||||
break
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user