如何解决如何匹配splunk中的URI
有一些域名。
主持人:random_doamin:8080
主持人:random_domain / hello
主持人:random_domain
主持人:http:// random_doamin:8080
主持人:https:// random_domain / hello
这是我用于测试splunk的查询。
index=notable earliest=-1h | head 5
| eval domain1="Host: random_doamin:8080"
| eval domain2="Host: random_domain/hello"
| eval domain3="Host: random_domain"
| eval domain4="Host: http://random_doamin:8080"
| eval domain5="Host: https://random_domain/hello"
| eval isMalicious = mvappend('domain1','domain2','domain3','domain4','domain5')
| mvexpand isMalicious
| dedup isMalicious
| rex field=isMalicious "Host: (http://|https://)?(?<random_domain>.*(:|\/)?)"
| table isMalicious random_domain
这是查询结果。
我想要的是仅提取random_domain
如果这不可能,那么至少我要像下面这样提取
“ random_domain:”或“ random_domain /”
我需要你的帮助。 预先感谢您的好意。
解决方法
使用
Host: (?:https?://)?(?<random_domain>[^:/\s]+)
请参见proof。
说明
--------------------------------------------------------------------------------
Host: 'Host: '
--------------------------------------------------------------------------------
(?: group,but do not capture (optional
(matching the most amount possible)):
--------------------------------------------------------------------------------
http 'http'
--------------------------------------------------------------------------------
s? 's' (optional (matching the most amount
possible))
--------------------------------------------------------------------------------
:// '://'
--------------------------------------------------------------------------------
)? end of grouping
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。