package ip import ( "net" "net/http" "strings" ) // 获取客户端ip地址 func GetClientIP(r *http.Request) (ip string, err error) { xForwardedFor := r.Header.Get("X-Forwarded-For") ip = strings.TrimSpace(strings.Split(xForwardedFor, ",")[0]) if ip != "" { return ip, nil } ip = strings.TrimSpace(r.Header.Get("X-Real-Ip")) if ip != "" { return ip, nil } ip, _, err = net.SplitHostPort(strings.TrimSpace(r.RemoteAddr)) if err != nil { return "", err } return ip, nil }