From c423c38c2e4f6f4a9194bace367a7e6fc57aed2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Thu, 11 Aug 2022 09:53:43 +0800 Subject: [PATCH] - update ip --- README.md | 2 +- const.go | 2 ++ go.mod | 8 +++++--- go.sum | 10 ++++++---- ip.go | 36 ++++++++++++++++++++---------------- version.go | 3 --- 6 files changed, 34 insertions(+), 27 deletions(-) delete mode 100644 version.go diff --git a/README.md b/README.md index f272a56..4dc83d0 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Golang Request -📦 Golang 请求 +📦 Golang Request [comment]: <> (go) [![godoc](https://pkg.go.dev/badge/go.dtapp.net/gorequest?status.svg)](https://pkg.go.dev/go.dtapp.net/gorequest) diff --git a/const.go b/const.go index 8cf10a6..2439bd0 100644 --- a/const.go +++ b/const.go @@ -10,3 +10,5 @@ var ( httpParamsModeXml = "XML" httpParamsModeForm = "FORM" ) + +const Version = "1.0.24" diff --git a/go.mod b/go.mod index a7dca3f..9aec800 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,9 @@ module go.dtapp.net/gorequest -go 1.18 +go 1.19 -require go.dtapp.net/gostring v1.0.5 +require go.dtapp.net/gostring v1.0.6 -require go.dtapp.net/gotime v1.0.4 +require go.dtapp.net/gotime v1.0.5 + +require go.dtapp.net/gorandom v1.0.1 // indirect diff --git a/go.sum b/go.sum index 32fa495..ecb609c 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,6 @@ -go.dtapp.net/gostring v1.0.5 h1:6sKrSdQ4so80+zvo+VDZ5pgWGREq2niTLv6GIF++HgY= -go.dtapp.net/gostring v1.0.5/go.mod h1:+ggrOvgQDQturi1QGsXEpyRN/ZPoRDaqhMujIk5lrgQ= -go.dtapp.net/gotime v1.0.4 h1:gOOkGKfhJwX+dsGHvnF2est09Oqvk7cihJkePddJ5a8= -go.dtapp.net/gotime v1.0.4/go.mod h1:Gq7eNLr2iMLP18UNWONRq4V3Uhf/ADp4bIrS+Tc6ktY= +go.dtapp.net/gorandom v1.0.1 h1:IWfMClh1ECPvyUjlqD7MwLq4mZdUusD1qAwAdsvEJBs= +go.dtapp.net/gorandom v1.0.1/go.mod h1:ZPdgalKpvFV/ATQqR0k4ns/F/IpITAZpx6WkWirr5Y8= +go.dtapp.net/gostring v1.0.6 h1:XqNaThEfHpweLofru5sBqm1UUzc9JWsXyB/M/rTk29w= +go.dtapp.net/gostring v1.0.6/go.mod h1:AMnnLjyNxH+cphxyASJGYCzWpVrkP5RncuVo8xL8s3E= +go.dtapp.net/gotime v1.0.5 h1:12aNgB2ULpP6QgQHEUkLilZ4ASvhpFxMFQkBwn0par8= +go.dtapp.net/gotime v1.0.5/go.mod h1:Gq7eNLr2iMLP18UNWONRq4V3Uhf/ADp4bIrS+Tc6ktY= diff --git a/ip.go b/ip.go index d7811a9..b2d65b0 100644 --- a/ip.go +++ b/ip.go @@ -10,35 +10,39 @@ import ( // 解析 X-Real-IP 和 X-Forwarded-For 以便于反向代理(nginx 或 haproxy)可以正常工作。 func ClientIp(r *http.Request) string { + // CloudFlare + CfConnectingIp := strings.TrimSpace(r.Header.Get("Cf-Connecting-Ip")) + if CfConnectingIp != "" { + return CfConnectingIp + } + // 转发IP - xForwardedFor := r.Header.Get("X-Forwarded-For") - ip := strings.TrimSpace(strings.Split(xForwardedFor, ",")[0]) - if ip != "" { - return ip + xForwardedFor := strings.TrimSpace(strings.Split(r.Header.Get("X-Forwarded-For"), ",")[0]) + if xForwardedFor != "" { + return xForwardedFor } // 真实Ip - ip = strings.TrimSpace(r.Header.Get("X-Real-Ip")) - if ip != "" { - return ip + XRealIp := strings.TrimSpace(r.Header.Get("X-Real-Ip")) + if XRealIp != "" { + return XRealIp } // HTTP客户端IP - httpClientIp := r.Header.Get("HTTP_CLIENT_IP") - ip = strings.TrimSpace(strings.Split(httpClientIp, ",")[0]) - if ip != "" { - return ip + HttpClientIp := strings.TrimSpace(strings.Split(r.Header.Get("HTTP_CLIENT_IP"), ",")[0]) + if HttpClientIp != "" { + return HttpClientIp } // HTTP转发IP - HttpXForwardedFor := r.Header.Get("HTTP_X_FORWARDED_FOR") - ip = strings.TrimSpace(strings.Split(HttpXForwardedFor, ",")[0]) - if ip != "" { - return ip + HttpXForwardedFor := strings.TrimSpace(strings.Split(r.Header.Get("HTTP_X_FORWARDED_FOR"), ",")[0]) + if HttpXForwardedFor != "" { + return HttpXForwardedFor } // 系统 - if ip, _, err := net.SplitHostPort(strings.TrimSpace(r.RemoteAddr)); err == nil { + ip, _, err := net.SplitHostPort(strings.TrimSpace(r.RemoteAddr)) + if err == nil { return ip } diff --git a/version.go b/version.go deleted file mode 100644 index 18e93bd..0000000 --- a/version.go +++ /dev/null @@ -1,3 +0,0 @@ -package gorequest - -const Version = "1.0.23"