IP 解析函数

最近更新时间:2024-05-29 11:46:11

我的收藏

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"}