33 lines
541 B
Go
33 lines
541 B
Go
package rest
|
||
|
||
import (
|
||
"net/http"
|
||
"strings"
|
||
)
|
||
|
||
//根据一个请求,获取ip.
|
||
func GetIpAddress(r *http.Request) string {
|
||
var ipAddress string
|
||
|
||
ipAddress = r.RemoteAddr
|
||
|
||
if ipAddress != "" {
|
||
ipAddress = strings.Split(ipAddress, ":")[0]
|
||
}
|
||
|
||
for _, h := range []string{"X-Forwarded-For", "X-Real-Ip"} {
|
||
for _, ip := range strings.Split(r.Header.Get(h), ",") {
|
||
if ip != "" {
|
||
ipAddress = ip
|
||
}
|
||
}
|
||
}
|
||
return ipAddress
|
||
}
|
||
|
||
//根据一个请求,获取host
|
||
func GetHostFromRequest(r *http.Request) string {
|
||
|
||
return r.Host
|
||
|
||
} |