gpt4 book ai didi

Azure 数据资源管理器查询从 IP 地址查找国家/地区

转载 作者:行者123 更新时间:2023-12-02 07:21:51 24 4
gpt4 key购买 nike

我正在寻求有关构建 KQL 查询以根据 IP 查找国家/地区的帮助。

到目前为止,我有一个名为“Events”的表,其中有 3 列,如下所示:

username, logintime, sourceIP

一个具体的例子是:

bob, 2020-04-28T21:29:42Z, 1.2.3.4

我还有一个表格,列出了全局网络 block /子网排列。数据示例如下:

Network, geoname, code, continent, ISO, country

41.74.160.0/24, 49518, AF, Africa, FW, Rwanda

ADX 有一个名为 ipv4_is_match() 的函数,如果 IP 地址“存在”在特定子网中,该函数将返回 true。因此我可以运行这样的查询来返回单个 IP 的位置:

countryDB| where ipv4_is_match( '41.74.160.123', Network)

我似乎不知道如何在事件中的所有源 IP 地址上运行它。

我希望这样的事情能够发挥作用:

Events| union ( countryDB where ipv4_is_match(sourceIP, Network) )

任何人都可以建议创建与此类似的连接结果的正确语法是什么:

bob, 2020-04-28T21:29:42Z, 1.2.3.4, 41.74.160.0/24, 49518, AF, Africa, FW, Rwanda

最佳答案

这是一种方法,在虚拟列上使用联接来创建笛卡尔积,然后过滤匹配项。这是一个例子:

let Events = datatable(username:string, logintime:datetime, sourceIP:string) [ "bob", datetime(2020-04-28T21:29:42Z), "41.74.160.0"];
let CountryDB = datatable(Network:string, geoname:string, code:string, continent:string, ISO:string, country:string)["41.74.160.0/24", "49518", "AF", "Africa", "FW", "Rwanda"];
Events
| extend Dummy = 1
| lookup (CountryDB | extend Dummy=1) on Dummy
| where ipv4_is_match(sourceIP, Network)
| project-away Dummy

关于Azure 数据资源管理器查询从 IP 地址查找国家/地区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64675329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com