Fixed recursive port detection logic

+ Fixed recursive port detection logic
+ Added support for CF-Connecting-IP #114
This commit is contained in:
Toby Chui
2024-03-30 15:52:10 +08:00
parent c55a29e7cf
commit e242c9288f
2 changed files with 14 additions and 3 deletions

View File

@@ -298,8 +298,19 @@ func addXForwardedForHeader(req *http.Request) {
}
if req.Header.Get("X-Real-Ip") == "" {
//Not exists. Fill it in with client IP
req.Header.Set("X-Real-Ip", clientIP)
//Check if CF-Connecting-IP header exists
CF_Connecting_IP := req.Header.Get("CF-Connecting-IP")
if CF_Connecting_IP != "" {
//Use CF Connecting IP
req.Header.Set("X-Real-Ip", CF_Connecting_IP)
} else {
// Not exists. Fill it in with first entry in X-Forwarded-For
ips := strings.Split(clientIP, ",")
if len(ips) > 0 {
req.Header.Set("X-Real-Ip", strings.TrimSpace(ips[0]))
}
}
}
}