【问题标题】:Regex to capture the useragent from the citrix logs正则表达式从 citrix 日志中捕获用户代理
【发布时间】:2017-12-08 12:27:50
【问题描述】:

在从 citrix 日志中捕获用户代理详细信息时需要帮助。 citrix 的日志格式对于成功和拒绝是完全不同的。样本如下

对于成功的身份验证,用户代理详细信息包含在“”中。详细信息在关键字Browser_type“”之后

对于 Denied traffic ,“”中不存在用户代理详细信息。它出现在关键字 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 X.X.X.X - Failure_reason“外部身份验证服务器拒绝访问” -浏览器 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:上下文 renjus@1X.X.X.X - SessionId:xxx- 用户 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 -组“不适用”

我确实有一个正则表达式来捕获“”中的浏览器代理

(?P(??(?=\s(?:\w+=|\")))"

Bud 需要一个从所有格式中捕获用户代理的正则表达式。

提前致谢。

【问题讨论】:

    标签: regex citrix


    【解决方案1】:

    也许你可以像这样匹配你的日志:

    Browser(?:_type)?\s"?(.+|[^"]+)

    • 匹配浏览器与可选的_type Browser(?:_type)
    • 后跟可选的双引号 "?
    • 后跟空格\s
    • 然后在一个组中捕获( 任何字符零次或多次.*
    • |
    • 直到遇到双引号[^"]+
    • 关闭群组)

    编辑:

    在命名的捕获组中捕获“浏览器”而不使用可选的“_type”:

    (?P<citrix_useragent>Browser)(?:_type)?\s"?(.+|[^"]+)

    【讨论】:

    • 您好,感谢您的帮助。您的查询逻辑是正确的,但需要稍作调整。请帮我尝试一下,但是在用户代理详细信息前面捕获关键字 browser(?P(?:Browser(?:_type)?\s"*(.+"-|[^" ]+))). 任何解决方法
    • @List25 如果你想在命名的捕获组中捕获没有可选“_type”的“浏览器”,你可以这样做(?P<citrix_useragent>Browser)(?:_type)?\s"?(.+|[^"]+)
    • @第四只鸟:谢谢回复。做了一些初步的解决方法并找到了我正在寻找的正则表达式 Browser((?:_type)?\s\"*)(?P(.+\"-|[^\"]+))跨度>
    【解决方案2】:

    得到第四只鸟的初步推动,并做了一些工作。

    Browser((?:_type)?\s\"*)(?P(.+\"-|[^\"]+))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2019-05-31
      • 2014-01-02
      • 1970-01-01
      相关资源
      最近更新 更多