根据 IP 地址解析出对应的地理位置和行政区划等位置信息,支持 IPV4 和 IPV6 地址。IP 地址的位置可能会变化。
geo_parse(ip,fields=要保留的字段,sep=",")
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
ip | String | 是 | / | / | 待解析的 IP 地址。多个 IP 地址之间用 # 分隔。 |
fields | String | 否 | city,province,country,city_en,province_en,country_en,isp,lat,lon | / | IP 解析结果中需要保留的字段,默认返回以下字段:
如果需要指定多个字段,应使用英文逗号分隔,例如 |
sep | String | 否 | , | 可见字符 | 如果 ip 字段中指定多个地址,则通过此字段定义分隔符。 |
函数示例 1:
场景:解析一个 IP 地址。
加工规则:
f_set("ip_location",geo_parse(v("ip")))
日志样例:
{ "ip":"2408:844f:9f31:4e3:31f:7522:xxxx:xxx" }
加工结果:
{ "ip":"2408:844f:9f31:4e3:31f:7522:xxxx:xxx", "ip_location":{ "city":"黄冈", "city_en":"Huanggang", "country":"中国", "country_en":"People's Republic of China", "isp":"", "lat":30.4477xx, "lon":114.8793xx, "province":"湖北", "province_en":"Hubei" } }
函数示例 2:
场景:解析多个 IP 地址。
加工规则:
f_set("ip_location",geo_parse(v("ip"),"city,province","#"))
日志样例:
{ "ip":"118.115.xx.xxx#183.225.xx.xxx" }
加工结果:
{ "ip":"118.115.xx.xxx#183.225.xx.xxx", "ip_location":{ "118.115.xx.xxx":{ "city":"内江", "province":"四川" }, "183.225.xx.xxx":{ "city":"红河", "province":"云南" } } }