golang 从X-Forwarded-For获取客户IP
在Go语言中,可以使用net/http包来获取HTTP请求的头部信息,包括X-Forwarded-For头部信息来获取客户端的IP地址。
以下是一个示例代码:
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
xForwardedFor := r.Header.Get("X-Forwarded-For")
ips := strings.Split(xForwardedFor, ",")
// 获取最后一个IP地址(客户端IP)
clientIP := strings.TrimSpace(ips[len(ips)-1])
fmt.Println("Client IP:", clientIP)
w.WriteHeader(http.StatusOK)
w.Write([]byte("Hello, World!"))
})
http.ListenAndServe(":8080", nil)
}
在上面的示例中,我们通过r.Header.Get("X-Forwarded-For")来获取X-Forwarded-For头部信息,并使用strings.Split()函数将其拆分为IP地址的数组。然后,我们通过ips[len(ips)-1]获取最后一个IP地址,即客户端IP地址。
请注意,X-Forwarded-For头部信息是一个可信任的客户端IP地址列表,它可能包含多个IP地址,每个IP地址之间由逗号分隔。因此,我们在获取客户端IP地址时,选择最后一个IP地址来获取真实的客户端IP地址
原文地址: https://www.cveoy.top/t/topic/iKr0 著作权归作者所有。请勿转载和采集!