39 lines
999 B
Go
39 lines
999 B
Go
|
package util
|
|||
|
|
|||
|
import (
|
|||
|
"strings"
|
|||
|
)
|
|||
|
|
|||
|
// ParseUserAgent 解析User-Agent字符串,返回操作系统信息
|
|||
|
func ParseUserAgent(userAgent string) string {
|
|||
|
if userAgent == "" {
|
|||
|
return "未知"
|
|||
|
}
|
|||
|
|
|||
|
userAgent = strings.ToLower(userAgent)
|
|||
|
|
|||
|
// 操作系统判断
|
|||
|
switch {
|
|||
|
case strings.Contains(userAgent, "windows"):
|
|||
|
return "Windows"
|
|||
|
case strings.Contains(userAgent, "macintosh") || strings.Contains(userAgent, "mac os x"):
|
|||
|
return "MacOS"
|
|||
|
case strings.Contains(userAgent, "linux"):
|
|||
|
return "Linux"
|
|||
|
case strings.Contains(userAgent, "android"):
|
|||
|
return "Android"
|
|||
|
case strings.Contains(userAgent, "iphone") || strings.Contains(userAgent, "ipad") || strings.Contains(userAgent, "ipod"):
|
|||
|
return "iOS"
|
|||
|
case strings.Contains(userAgent, "freebsd"):
|
|||
|
return "FreeBSD"
|
|||
|
case strings.Contains(userAgent, "openbsd"):
|
|||
|
return "OpenBSD"
|
|||
|
case strings.Contains(userAgent, "netbsd"):
|
|||
|
return "NetBSD"
|
|||
|
case strings.Contains(userAgent, "sunos"):
|
|||
|
return "Solaris"
|
|||
|
default:
|
|||
|
return "未知"
|
|||
|
}
|
|||
|
}
|