根据 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":"云南"
}
}
}