package middleware import "net/http" // GetClientIP 获取客户端真实 IP func GetClientIP(r *http.Request) string { xff := r.Header.Get("X-Forwarded-For") if xff != "" { for i := 0; i < len(xff); i++ { if xff[i] == ',' { return xff[:i] } } return xff } if xri := r.Header.Get("X-Real-IP"); xri != "" { return xri } remoteAddr := r.RemoteAddr for i := len(remoteAddr) - 1; i >= 0; i-- { if remoteAddr[i] == ':' { return remoteAddr[:i] } } return remoteAddr }