requtil.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // util
  2. package common
  3. import (
  4. "net"
  5. "net/http"
  6. "strings"
  7. )
  8. //获取平台类型
  9. func GetOS(useros string) string {
  10. osVersion := "其他"
  11. if strings.Contains(useros, "NT 6.0") {
  12. osVersion = "Windows Vista/Server 2008"
  13. } else if strings.Contains(useros, "NT 5.2") {
  14. osVersion = "Windows Server 2003"
  15. } else if strings.Contains(useros, "NT 5.1") {
  16. osVersion = "Windows XP"
  17. } else if strings.Contains(useros, "NT 5") {
  18. osVersion = "Windows 2000"
  19. } else if strings.Contains(useros, "Mac") {
  20. osVersion = "Mac"
  21. } else if strings.Contains(useros, "Unix") {
  22. osVersion = "UNIX"
  23. } else if strings.Contains(useros, "Linux") {
  24. osVersion = "Linux"
  25. } else if strings.Contains(useros, "SunOS") {
  26. osVersion = "SunOS"
  27. } else if strings.Contains(useros, "NT 6.3") {
  28. osVersion = "Window8"
  29. } else if strings.Contains(useros, "NT 6.1") {
  30. osVersion = "Window7"
  31. } else if strings.Contains(useros, "NT 10.0") {
  32. osVersion = "Window10"
  33. }
  34. return osVersion
  35. }
  36. //获取浏览器类型
  37. func GetBrowse(userbrowser string) string {
  38. browserVersion := "其他"
  39. if strings.Contains(userbrowser, "MSIE") {
  40. browserVersion = "IE"
  41. } else if strings.Contains(userbrowser, "Firefox") {
  42. browserVersion = "Firefox"
  43. } else if strings.Contains(userbrowser, "Chrome") {
  44. browserVersion = "Chrome"
  45. } else if strings.Contains(userbrowser, "Safari") {
  46. browserVersion = "Safari"
  47. } else if strings.Contains(userbrowser, "rv:11.0") {
  48. browserVersion = "IE11"
  49. }
  50. return browserVersion
  51. }
  52. //获取ip
  53. func GetIp(req *http.Request) string {
  54. if req == nil {
  55. return ""
  56. }
  57. ip_for := req.Header.Get("x-forwarded-for")
  58. ip_client := req.Header.Get("http_client_ip")
  59. ip_addr := req.Header.Get("Remote_addr")
  60. un := "unknown"
  61. if (ip_for != un) && (len(strings.TrimSpace(ip_for)) > 0) {
  62. return ip_for
  63. }
  64. if (ip_client != un) && (len(strings.TrimSpace(ip_client)) > 0) {
  65. return ip_client
  66. }
  67. if (ip_addr != un) && (len(strings.TrimSpace(ip_addr)) > 0) {
  68. return ip_addr
  69. }
  70. ip, _, _ := net.SplitHostPort(req.RemoteAddr)
  71. return ip
  72. }