splunk:从ip地址获取前三个数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了splunk:从ip地址获取前三个数字相关的知识,希望对你有一定的参考价值。

我正在尝试获取这种格式的前三组IP地址:10.10.10.10

期望值将是10.10.10

答案

试试这个正则表达式:^(.+)(?=.d+$)

DEMO

从下次开始,请发布您尝试过的内容以及您计划如何实现解决方案。

另一答案

正则表达式匹配正确的IP4Address:

/^(([01]?d?d|2[0-4]d|25[0-5]).){3}([01]?d?d|2[0-4]d|25[0-5])$/

Regex101


正则表达式匹配正确的IP4Address的前三个块:

/^(([01]?d?d|2[0-4]d|25[0-5]).){2}([01]?d?d|2[0-4]d|25[0-5])$/

Regex101


或者当它与第三个块之后的点匹配时仍然很好:

/^(([01]?d?d|2[0-4]d|25[0-5]).){3}$/

Regex101

另一答案

能够这样得到它:

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搜索查询中。

要回答您的确切问题:

  1. 正则表达式代码,其中MY_FIELD_NAME_HERE是提取字段的名称:

(?<MY_FIELD_NAME_HERE>d+.d+.d+).d+

  1. 正则表达式与regex101中的示例:

https://regex101.com/r/qTTf4e/2

  1. 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地址获取前三个数字的主要内容,如果未能解决你的问题,请参考以下文章

将数据从当前片段传回前一个片段

如何在数字前加上一个固定的三个字母代码?

Linux中用shell怎么获取IP地址及MAC地址?

如何从 sockaddr 获取 IP 地址

如何获取数组中的每个第n个数字?不行

如何为 IP 地址定位器创建代码,该代码从数据库中的表中获取 IP 地址