用于从 citrix 日志中捕获用户代理的正则表达式
Regex to capture the useragent from the citrix logs
需要帮助从 citrix 日志中捕获用户代理详细信息。 citrix 的日志格式对于成功和拒绝是完全不同的。示例如下
对于成功的身份验证,用户代理详细信息包含在“”内。详情在关键字Browser_type“”
之后
对于拒绝流量,“”中不存在用户代理详细信息。它出现在关键字 Browser
之后
拒绝
Dec 8 05:20:53 netscaler02 12/08/2017:05:20:53 netscaler02 0-PPE-0 : AAA LOGIN_FAILED -adasd92 0 : User renju - Client_ip X.X.X.X - Failure_reason "External authentication server denied access" - Browser Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
成功
Dec 8 05:54:06 netscaler02 12/08/2017:11:54:06 GMT netscaler02 0-PPE-0 : SSLVPN LOGIN -78342434122 0 : Context renjus@1X.X.X.X - SessionId: xxx- User renju - Client_ip X.X.X.X - Nat_ip "Mapped Ip" - Vserver X.X.X.X:443 - Browser_type "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" - SSLVPN_asdasdat_type ICA - Group(s) "N/A"
我确实有一个正则表达式来捕获“”中的浏览器代理
(?P(?<=Browser_type\s\").?(?=\s(?:\w+=|\")))"
Bud 需要一个从所有格式中捕获用户代理的正则表达式。
提前致谢。
也许你可以这样匹配你的日志:
Browser(?:_type)?\s"?(.+|[^"]+)
- 将浏览器与可选的_type匹配
Browser(?:_type)
- 后跟一个可选的双引号
"?
- 后跟一个空格
\s
- 然后在一组中捕获任意字符零次或多次
(
.*
- 或
|
- 全部直到遇到双引号
[^"]+
- 关群
)
编辑:
要在命名捕获组中捕获 "Browser" 而不使用可选的“_type”:
从 The fourth bird 那里得到了最初的推动,并做了一些工作。
需要帮助从 citrix 日志中捕获用户代理详细信息。 citrix 的日志格式对于成功和拒绝是完全不同的。示例如下
对于成功的身份验证,用户代理详细信息包含在“”内。详情在关键字Browser_type“”
之后对于拒绝流量,“”中不存在用户代理详细信息。它出现在关键字 Browser
之后拒绝
Dec 8 05:20:53 netscaler02 12/08/2017:05:20:53 netscaler02 0-PPE-0 : AAA LOGIN_FAILED -adasd92 0 : User renju - Client_ip X.X.X.X - Failure_reason "External authentication server denied access" - Browser Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
成功
Dec 8 05:54:06 netscaler02 12/08/2017:11:54:06 GMT netscaler02 0-PPE-0 : SSLVPN LOGIN -78342434122 0 : Context renjus@1X.X.X.X - SessionId: xxx- User renju - Client_ip X.X.X.X - Nat_ip "Mapped Ip" - Vserver X.X.X.X:443 - Browser_type "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" - SSLVPN_asdasdat_type ICA - Group(s) "N/A"
我确实有一个正则表达式来捕获“”中的浏览器代理
(?P(?<=Browser_type\s\").?(?=\s(?:\w+=|\")))"
Bud 需要一个从所有格式中捕获用户代理的正则表达式。
提前致谢。
也许你可以这样匹配你的日志:
Browser(?:_type)?\s"?(.+|[^"]+)
- 将浏览器与可选的_type匹配
Browser(?:_type)
- 后跟一个可选的双引号
"?
- 后跟一个空格
\s
- 然后在一组中捕获任意字符零次或多次
(
.*
- 或
|
- 全部直到遇到双引号
[^"]+
- 关群
)
编辑:
要在命名捕获组中捕获 "Browser" 而不使用可选的“_type”:
从 The fourth bird 那里得到了最初的推动,并做了一些工作。