从字符串中提取IPv6地址



我目前已经形成了一个从字符串中提取ipv4地址的KQL。类似地,我需要从字符串

中提取ipv6地址ipv4 extract query:

datatable (ipv4text:string) 
[
'This is a random text that has IP address 128.0.0.20 that has to be extracted'
]
|extend pv4addr = extract("(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.(([0-9]{1,3})))",1,ipv4text) 

我尝试了下面的方法,但不确定它是否涵盖了所有的边缘情况

datatable (ipv6:string) 
[
'IPv6 test 198.192.0.127 2345:5:2CA1:0000:0000:567:5673:256/127 in a random string'
]
|extend Ipv6Address = extract(@"(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4})|([0-9a-fA-F]{1,4}:){1,7}:",1,ipv6)

你们谁能提供一个完整的KQL(或建议/提示)来提取IPV6地址?

谢谢。

正则表达式模式可以简化。

下面是"快乐路径"。如果它在那里,就会被提取出来。
理论上,你可能会得到假阳性,尽管现实生活中的数据不太可能。
如果需要,我们可以添加一些保护层。

datatable (ipv4text:string) 
[
'This is a random text that has IP address 128.0.0.20 that has to be extracted'
]
| project pv4addr = extract(@"(d{1,3}.){3}d{1,3}", 0, ipv4text)
tbody> <<tr>
pv4addr
128.0.0.20

最新更新