geo_parse 函数
函数定义
解析出 IP 的地理位置。
语法描述
geo_parse(字段值, keep=("country","province","city"), ip_sep=",")
参数说明
参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
data | IP 值,支持多个 IP 通过分隔符分隔 | string | 是 | - | - |
keep | 要留存的字段 | string | 否 | ("country","province","city") | - |
ip_sep | 匹配结果中的第几个表达式 | string | 否 | - | - |
示例
示例1
原始日志:
{"ip":"101.132.57.150"}
加工规则:
fields_set("result", geo_parse(v("ip")))
加工结果:
{"ip":"101.132.57.150","result":"{\\"country\\":\\"中国\\",\\"province\\":\\"上海市\\",\\"city\\":\\"上海市\\"}"}
示例2
原始日志:
{"ip":"101.132.57.150,101.14.57.157"}
加工规则:
fields_set("result", geo_parse(v("ip"),keep="province,city",ip_sep=","))
加工结果:
{"ip":"101.132.57.150,101.14.57.157", "result":"{\\"101.14.57.157\\":{\\"province\\":\\"台湾省\\",\\"city\\":\\"NULL\\"},\\"101.132.57.150\\":{\\"province\\":\\"上海市\\",\\"city\\":\\"上海市\\"}}"}
is_subnet_of 函数
函数定义
判断 IP 是否在该网段内, 支持多个网段。
语法描述
is_subnet_of(网段列表, ip)
参数说明
参数名称 | 参数描述 | 参数类型 | 是否必须 | 参数默认值 | 参数取值范围 |
网段列表 | 网段,支持多个网段,通过','分隔 | String | 是 | - | - |
IP | 待判断的 IP | String | 是 | - | - |
示例
示例1
原始日志:
{"ip": "192.168.1.127"}
加工规则:
log_keep(is_subnet_of("192.168.1.64/26",v("ip")))
加工结果:
{"ip": "192.168.1.127"}
示例2
原始日志:
{"ip": "192.168.1.127"}
加工规则:
fields_set("is_subnet",is_subnet_of("192.168.1.64/26",v("ip")))
加工结果:
{"ip": "192.168.1.127", "is_subnet":"true"}
示例3
原始日志:
{"ip": "192.168.1.127"}
加工规则:
fields_set("is_subnet",is_subnet_of("172.16.0.0/16",v("ip")))
加工结果:
{"ip": "192.168.1.127", "is_subnet":"false"}
示例4
原始日志:
{"ip": "192.168.1.127"}
加工规则:
fields_set("is_subnet",is_subnet_of("172.16.0.0/16,192.168.1.64/26",v("ip")))
加工结果:
{"ip": "192.168.1.127", "is_subnet":"true"}