pull/5146/head
null 2025-09-15 13:49:37 +08:00
parent 83c5370eec
commit 9d91c185a6
1 changed files with 17 additions and 1 deletions

View File

@ -9,7 +9,7 @@ import (
)
// ParseXForwardedFor parses X-Forwarded-For header in http headers, and return the IP list in it.
func ParseXForwardedFor(header http.Header) []net.Address {
func parseXForwardedFor(header http.Header) []net.Address {
xff := header.Get("X-Forwarded-For")
if xff == "" {
return nil
@ -22,6 +22,22 @@ func ParseXForwardedFor(header http.Header) []net.Address {
return addrs
}
func parseCFConnectingIP(header http.Header) []net.Address {
value := header.Get("CF-Connecting-IP")
if value == "" {
return nil
}
return []net.Address{net.ParseAddress(value)}
}
func ParseXForwardedFor(header http.Header) []net.Address {
addrs := parseXForwardedFor(header)
if len(addrs) == 0 {
addrs = parseCFConnectingIP(header)
}
return addrs
}
// RemoveHopByHopHeaders removes hop by hop headers in http header list.
func RemoveHopByHopHeaders(header http.Header) {
// Strip hop-by-hop header based on RFC: