splunk:从ip地址获取前三个数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了splunk:从ip地址获取前三个数字相关的知识,希望对你有一定的参考价值。
我正在尝试获取这种格式的前三组IP地址:10.10.10.10
期望值将是10.10.10
试试这个正则表达式:^(.+)(?=.d+$)
从下次开始,请发布您尝试过的内容以及您计划如何实现解决方案。
正则表达式匹配正确的IP4Address:
/^(([01]?d?d|2[0-4]d|25[0-5]).){3}([01]?d?d|2[0-4]d|25[0-5])$/
正则表达式匹配正确的IP4Address的前三个块:
/^(([01]?d?d|2[0-4]d|25[0-5]).){2}([01]?d?d|2[0-4]d|25[0-5])$/
或者当它与第三个块之后的点匹配时仍然很好:
/^(([01]?d?d|2[0-4]d|25[0-5]).){3}$/
能够这样得到它:
rex field=IP "(?<first_three>d+.d+.d+).d+"
另一种方法。
..| rex field=ip_addr "(?<split_ip>.+).[0-9]+"
哪里,
ip_addr - 字段名称
split_ip - 将存储拆分IP地址的变量
例:
Splunk查询:
| stats count | eval ip = "115.124.35.123" | rex field=ip "(?<split_ip>.+).[0-9]+" | table split_ip
输出:115.124.35
以下对我有用。 rex field=_raw "(?<ip_address>^d+.d+.d+.d+)"|timechart count by ip_address
使用以下正则表达式:
^(?P<result>.+(?=.d+))
[链接] https://regex101.com/r/bO4tY5/3
https://regex101.com/是这类东西的超级有用工具。它允许您编写正则表达式并实时测试不同的字符串。
获得所需内容后,使用rex命令将其粘贴到Splunk搜索查询中。
要回答您的确切问题:
- 正则表达式代码,其中MY_FIELD_NAME_HERE是提取字段的名称:
(?<MY_FIELD_NAME_HERE>d+.d+.d+).d+
- 正则表达式与regex101中的示例:
https://regex101.com/r/qTTf4e/2
- Splunk查询语言所需的命令,其中ORIGNAL_FIELD是保存10.10.10.10和MY_FIELD_NAME_HERE的原始字段是提取的字段:
... | rex field="ORIGNAL_FIELD" "(?<MY_FIELD_NAME_HERE>d+.d+.d+).d+"
以上是关于splunk:从ip地址获取前三个数字的主要内容,如果未能解决你的问题,请参考以下文章