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 "未知"
|
||
}
|
||
}
|