Skip to content

Commit 40d1f70

Browse files
committed
Fix realIP logic
1 parent 584cb85 commit 40d1f70

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

ip.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,16 @@ func extractIP(req *http.Request) string {
225225
func ExtractIPFromRealIPHeader(options ...TrustOption) IPExtractor {
226226
checker := newIPChecker(options)
227227
return func(req *http.Request) string {
228+
remoteIP := extractIP(req)
228229
realIP := req.Header.Get(HeaderXRealIP)
229-
if realIP != "" {
230-
realIP = strings.TrimPrefix(realIP, "[")
231-
realIP = strings.TrimSuffix(realIP, "]")
232-
if ip := net.ParseIP(realIP); ip != nil && checker.trust(ip) {
230+
realIP = strings.TrimPrefix(realIP, "[")
231+
realIP = strings.TrimSuffix(realIP, "]")
232+
if checker.trust(remoteIP) && realIP != "" {
233+
if ip := net.ParseIP(realIP); ip != nil {
233234
return realIP
234235
}
235236
}
236-
return extractIP(req)
237+
return remoteIP
237238
}
238239
}
239240

0 commit comments

Comments
 (0)