// util package common import ( "net" "net/http" "strings" ) //获取平台类型 func GetOS(useros string) string { osVersion := "其他" if strings.Contains(useros, "NT 6.0") { osVersion = "Windows Vista/Server 2008" } else if strings.Contains(useros, "NT 5.2") { osVersion = "Windows Server 2003" } else if strings.Contains(useros, "NT 5.1") { osVersion = "Windows XP" } else if strings.Contains(useros, "NT 5") { osVersion = "Windows 2000" } else if strings.Contains(useros, "Mac") { osVersion = "Mac" } else if strings.Contains(useros, "Unix") { osVersion = "UNIX" } else if strings.Contains(useros, "Linux") { osVersion = "Linux" } else if strings.Contains(useros, "SunOS") { osVersion = "SunOS" } else if strings.Contains(useros, "NT 6.3") { osVersion = "Window8" } else if strings.Contains(useros, "NT 6.1") { osVersion = "Window7" } else if strings.Contains(useros, "NT 10.0") { osVersion = "Window10" } return osVersion } //获取浏览器类型 func GetBrowse(userbrowser string) string { browserVersion := "其他" if strings.Contains(userbrowser, "MSIE") { browserVersion = "IE" } else if strings.Contains(userbrowser, "Firefox") { browserVersion = "Firefox" } else if strings.Contains(userbrowser, "Chrome") { browserVersion = "Chrome" } else if strings.Contains(userbrowser, "Safari") { browserVersion = "Safari" } else if strings.Contains(userbrowser, "rv:11.0") { browserVersion = "IE11" } return browserVersion } //获取ip func GetIp(req *http.Request) string { if req == nil { return "" } ip_for := req.Header.Get("x-forwarded-for") ip_client := req.Header.Get("http_client_ip") ip_addr := req.Header.Get("Remote_addr") un := "unknown" if (ip_for != un) && (len(strings.TrimSpace(ip_for)) > 0) { return ip_for } if (ip_client != un) && (len(strings.TrimSpace(ip_client)) > 0) { return ip_client } if (ip_addr != un) && (len(strings.TrimSpace(ip_addr)) > 0) { return ip_addr } ip, _, _ := net.SplitHostPort(req.RemoteAddr) return ip }