mirror of https://github.com/bjdgyc/anylink.git
优化 os 和 userAgent 判断顺序,预留 AnyLink Agent
This commit is contained in:
parent
d3ac346c85
commit
b06247201d
|
@ -41,17 +41,18 @@ var (
|
||||||
UserLogout: "用户登出",
|
UserLogout: "用户登出",
|
||||||
},
|
},
|
||||||
OsOps: []string{ // 操作系统
|
OsOps: []string{ // 操作系统
|
||||||
0: "Windows",
|
0: "Unknown",
|
||||||
1: "macOS",
|
1: "Windows",
|
||||||
2: "Linux",
|
2: "macOS",
|
||||||
3: "Android",
|
3: "Linux",
|
||||||
4: "iOS",
|
4: "Android",
|
||||||
5: "Unknown",
|
5: "iOS",
|
||||||
},
|
},
|
||||||
ClientOps: []string{ // 客户端
|
ClientOps: []string{ // 客户端
|
||||||
0: "AnyConnect",
|
0: "Unknown",
|
||||||
1: "OpenConnect",
|
1: "AnyConnect",
|
||||||
2: "Unknown",
|
2: "OpenConnect",
|
||||||
|
3: "AnyLink",
|
||||||
},
|
},
|
||||||
InfoOps: []string{ // 信息
|
InfoOps: []string{ // 信息
|
||||||
UserLogoutLose: "用户掉线",
|
UserLogoutLose: "用户掉线",
|
||||||
|
@ -119,27 +120,29 @@ func (ua *UserActLogProcess) GetInfoOpsById(id uint8) string {
|
||||||
func (ua *UserActLogProcess) ParseUserAgent(userAgent string) (os_idx, client_idx uint8, ver string) {
|
func (ua *UserActLogProcess) ParseUserAgent(userAgent string) (os_idx, client_idx uint8, ver string) {
|
||||||
// Unknown
|
// Unknown
|
||||||
if len(userAgent) == 0 {
|
if len(userAgent) == 0 {
|
||||||
return 5, 2, ""
|
return 0, 0, ""
|
||||||
}
|
}
|
||||||
// OS
|
// OS
|
||||||
os_idx = 5
|
os_idx = 0
|
||||||
if strings.Contains(userAgent, "windows") {
|
if strings.Contains(userAgent, "windows") {
|
||||||
os_idx = 0
|
|
||||||
} else if strings.Contains(userAgent, "mac os") || strings.Contains(userAgent, "darwin_i386") {
|
|
||||||
os_idx = 1
|
os_idx = 1
|
||||||
} else if strings.Contains(userAgent, "darwin_arm") || strings.Contains(userAgent, "apple") {
|
} else if strings.Contains(userAgent, "mac os") || strings.Contains(userAgent, "darwin_i386") {
|
||||||
os_idx = 4
|
|
||||||
} else if strings.Contains(userAgent, "android") {
|
|
||||||
os_idx = 3
|
|
||||||
} else if strings.Contains(userAgent, "linux") {
|
|
||||||
os_idx = 2
|
os_idx = 2
|
||||||
|
} else if strings.Contains(userAgent, "darwin_arm") || strings.Contains(userAgent, "apple") {
|
||||||
|
os_idx = 5
|
||||||
|
} else if strings.Contains(userAgent, "android") {
|
||||||
|
os_idx = 4
|
||||||
|
} else if strings.Contains(userAgent, "linux") {
|
||||||
|
os_idx = 3
|
||||||
}
|
}
|
||||||
// Client
|
// Client
|
||||||
client_idx = 2
|
client_idx = 0
|
||||||
if strings.Contains(userAgent, "anyconnect") {
|
if strings.Contains(userAgent, "anyconnect") {
|
||||||
client_idx = 0
|
|
||||||
} else if strings.Contains(userAgent, "openconnect") {
|
|
||||||
client_idx = 1
|
client_idx = 1
|
||||||
|
} else if strings.Contains(userAgent, "openconnect") {
|
||||||
|
client_idx = 2
|
||||||
|
} else if strings.Contains(userAgent, "anylink") {
|
||||||
|
client_idx = 3
|
||||||
}
|
}
|
||||||
// Verion
|
// Verion
|
||||||
uaSlice := strings.Split(userAgent, " ")
|
uaSlice := strings.Split(userAgent, " ")
|
||||||
|
|
|
@ -19,47 +19,47 @@ func TestParseUserAgent(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "mac os 1",
|
name: "mac os 1",
|
||||||
args: args{userAgent: "cisco anyconnect vpn agent for mac os x 4.10.05085"},
|
args: args{userAgent: "cisco anyconnect vpn agent for mac os x 4.10.05085"},
|
||||||
want: res{os_idx: 1, client_idx: 0, ver: "4.10.05085"},
|
want: res{os_idx: 2, client_idx: 1, ver: "4.10.05085"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "mac os 2",
|
name: "mac os 2",
|
||||||
args: args{userAgent: "anyconnect darwin_i386 4.10.05085"},
|
args: args{userAgent: "anyconnect darwin_i386 4.10.05085"},
|
||||||
want: res{os_idx: 1, client_idx: 0, ver: "4.10.05085"},
|
want: res{os_idx: 2, client_idx: 1, ver: "4.10.05085"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "windows",
|
name: "windows",
|
||||||
args: args{userAgent: "cisco anyconnect vpn agent for windows 4.8.02042"},
|
args: args{userAgent: "cisco anyconnect vpn agent for windows 4.8.02042"},
|
||||||
want: res{os_idx: 0, client_idx: 0, ver: "4.8.02042"},
|
want: res{os_idx: 1, client_idx: 1, ver: "4.8.02042"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "iPad",
|
name: "iPad",
|
||||||
args: args{userAgent: "anyconnect applesslvpn_darwin_arm (ipad) 4.10.04060"},
|
args: args{userAgent: "anyconnect applesslvpn_darwin_arm (ipad) 4.10.04060"},
|
||||||
want: res{os_idx: 4, client_idx: 0, ver: "4.10.04060"},
|
want: res{os_idx: 5, client_idx: 1, ver: "4.10.04060"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "iPhone",
|
name: "iPhone",
|
||||||
args: args{userAgent: "cisco anyconnect vpn agent for apple iphone 4.10.04060"},
|
args: args{userAgent: "cisco anyconnect vpn agent for apple iphone 4.10.04060"},
|
||||||
want: res{os_idx: 4, client_idx: 0, ver: "4.10.04060"},
|
want: res{os_idx: 5, client_idx: 1, ver: "4.10.04060"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "android",
|
name: "android",
|
||||||
args: args{userAgent: "anyconnect android 4.10.05096"},
|
args: args{userAgent: "anyconnect android 4.10.05096"},
|
||||||
want: res{os_idx: 3, client_idx: 0, ver: "4.10.05096"},
|
want: res{os_idx: 4, client_idx: 1, ver: "4.10.05096"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "linux",
|
name: "linux",
|
||||||
args: args{userAgent: "cisco anyconnect vpn agent for linux v7.08"},
|
args: args{userAgent: "cisco anyconnect vpn agent for linux v7.08"},
|
||||||
want: res{os_idx: 2, client_idx: 0, ver: "7.08"},
|
want: res{os_idx: 3, client_idx: 1, ver: "7.08"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "openconnect",
|
name: "openconnect",
|
||||||
args: args{userAgent: "openconnect-gui 1.5.3 v7.08"},
|
args: args{userAgent: "openconnect-gui 1.5.3 v7.08"},
|
||||||
want: res{os_idx: 5, client_idx: 1, ver: "7.08"},
|
want: res{os_idx: 0, client_idx: 2, ver: "7.08"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "unknown",
|
name: "unknown",
|
||||||
args: args{userAgent: "unknown 1.4.3 aabcd"},
|
args: args{userAgent: "unknown 1.4.3 aabcd"},
|
||||||
want: res{os_idx: 5, client_idx: 2, ver: ""},
|
want: res{os_idx: 0, client_idx: 0, ver: ""},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
|
Loading…
Reference in New Issue