需要帮助从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:用户renju - Client_ip XXXX - Failure_reason“外部认证服务器拒绝访问” - 浏览器Mozilla / 5.0(Windows NT 6.1)AppleWebKit / 537.36(KHTML,与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:上下文renjus@1X.XXX - SessionId:xxx-用户renju - Client_ip XXXX - Nat_ip“Mapped Ip” - Vserver XXXX:443 - Browser_type“Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,类似Gecko)Chrome / 56.0.2924.87 Safari / 537.36” - SSLVPN_asdasdat_type ICA - 小组“N / A”
我有一个正则表达式来捕获“”
中的浏览器代理(P(小于= Browser_type \ S \ “)的(= \ S (:???\ W + = | \”?)))“
Bud需要一个正则表达式来捕获所有格式的用户代理。
提前致谢。
答案 0 :(得分:0)
也许您可以像这样匹配您的日志:
Browser(?:_type)?\s"?(.+|[^"]+)
"?
\s
(
.*
组中捕获任何字符零次或多次|
[^"]+
)
__iter__
修改强>
捕获“浏览器”而不在命名捕获组中使用可选的“_type”:
答案 1 :(得分:0)
从第四只鸟获得了最初的推动并做了一些努力。