使用KQL parse分离字符串

问题描述 投票:0回答:1

我希望能够传入一串随机 IP 地址(只是一个没有逗号分隔的长字符串)并返回分隔为 IP 地址和端口的列表,如下所示:

IP地址 港口
237.148.51.168 445
208.250.127.105 63
154.133.47.172 0

这是我当前的代码,但是我不知道如何识别新行是 KQL 中的另一个值。

datatable(randomIpAddress:string)[
```237.148.51.168:445
208.250.127.105:63
154.133.47.172:0
246.249.197.54:4673
29.219.118.47:80
63.65.217.14:80
38.190.162.134:10
128.109.247.102:383
241.154.59.142:445
29.12.140.178:0```
]
| parse ipAddressList with ipAddress:string ':' port:string 
| project-away ipAddressList

目前返回:

IP地址 港口
237.148.51.168 445 208.250.127.105:63 154.133.47.172:0 246.249.197.54:4673 ...

谢谢!

parsing ip kql
1个回答
0
投票

您首先需要

split()
多行输入,然后使用
mv-expand
mv-apply
展开它。

例如:

datatable(multiline_input: string)
[
```237.148.51.168:445
208.250.127.105:63
154.133.47.172:0
246.249.197.54:4673
29.219.118.47:80
63.65.217.14:80
38.190.162.134:10
128.109.247.102:383
241.154.59.142:445
29.12.140.178:0```
]
| mv-apply ip_address = split(multiline_input, "\r\n") to typeof(string) on (
    parse ip_address with ip_address: string ':' port: string
)
| project ip_address, port
ip_地址 港口
237.148.51.168 445
208.250.127.105 63
154.133.47.172 0
246.249.197.54 4673
29.219.118.47 80
63.65.217.14 80
38.190.162.134 10
128.109.247.102 383
241.154.59.142 445
29.12.140.178 0
© www.soinside.com 2019 - 2024. All rights reserved.