|
@@ -0,0 +1,76 @@
|
|
|
+// util
|
|
|
+package util
|
|
|
+
|
|
|
+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
|
|
|
+}
|