云服务器内容精选

  • ip2long 将字符串格式的IP地址转换成长整型数据。 函数格式 ip2long(value,default=0) 参数说明 参数名称 参数类型 是否必填 说明 value String 是 需要被转换的值。 default String 否 某个不合法的IP地址被转换成的值。 返回结果 转换后的长整型数据。 函数示例 正常解析。 测试数据 { "ip": "116.209.192.0" } 加工规则 e_set("result",ip2long(v("ip"))) 加工结果 result: 1959903232 ip: 116.209.192.0 非法解析。 测试数据 { "ip": "116.209.abc.xxx" } 加工规则 e_set("result",ip2long(v("ip"), "error")) 加工结果 result: error ip: 116.209.abc.xxx
  • ip_overlaps 两个网段是否存在重叠。 函数格式 ip_overlaps(cidr_subnet, cidr_subnet2, default="") 参数说明 参数名称 参数类型 是否必填 说明 cidr_subnet String 是 输入CIDR地址块1。 cidr_subnet2 String 是 输入CIDR地址块2。 default String 否 无法判断两个CIDR地址块是否重叠时,返回该值。 返回结果 0: 两个CIDR地址块不重叠 1: 两个CIDR地址块重叠在结束位置 -1: 两个CIDR地址块重叠在开始位置 函数示例 示例1:两个CIDR地址块不重叠。 测试数据 { "a": "192.168.0.0/24", "b": "192.168.1.0/24" } 加工规则 e_set("result",ip_overlaps(v("a"),v("b"))) 加工结果 a: 192.168.0.0/24 b: 192.168.1.0/24 result: 0 示例2:两个CIDR地址在开始位置重叠。 测试数据 { "a": "192.168.1.0/24", "b": "192.168.0.0/23" } 加工规则 e_set("result",ip_overlaps(v("a"),v("b"))) 加工结果 a: 192.168.1.0/24 b: 192.168.0.0/23 result: 1 示例3:两个CIDR地址在结尾位置重叠。 测试数据 { "a": "192.168.0.0/23", "b": "192.168.1.0/24" } 加工规则 e_set("result",ip_overlaps(v("a"),v("b"))) 加工结果 a: 192.168.0.0/23 b: 192.168.1.0/24 result: 1
  • long2ip 将长整型数据转换成字符串格式的IP地址。 函数格式 long2ip(value,default="") 参数说明 参数名称 参数类型 是否必填 说明 value String 是 需要被转换的值。 default String 否 表示将不合法的长整型数据转成空字符串。 返回结果 长整型转换成功后的IP地址。 函数示例 正确的转换。 测试数据 { "data": "1959903232" } 加工规则 e_set("ip",long2ip(v("data"))) 加工结果 data: 1959903232 ip: 116.209.192.0 转换失败后自定义的错误处理。 测试数据 { "data": "4294967296" } 加工规则 e_set("ip",long2ip(v("data"), default="error")) 加工结果 data: 4294967296 ip: error
  • ip_to_format 将输入的CIDR地址块按照Prefixlen或者Netmask格式输出。 函数格式 ip_to_format(cidr_subnet, want_prefix_len=0, default="") 参数说明 参数名称 参数类型 是否必填 说明 cidr_subnet String 是 输入CIDR地址块,例如:192.168.10.0/24 want_prefix_len Int 否 设置返回格式,默认为0。 0:无格式返回。 1:prefix格式返回。 2:netmask格式返回。 3:IP网段格式返回。 default String 否 无法将输入的CIDR地址块按照格式输出时,返回该值。 返回结果 特定格式的IP地址。 函数示例 按照IP地址网段格式输出。 测试数据 { "ip": "192.168.11.0/24" } 加工规则 e_set("result",ip_to_format(v("ip"),3)) 加工结果 ip: 192.168.11.0/24 result: 192.168.11.0-192.168.11.255 按照netmask格式输出。 测试数据 { "ip": "192.168.11.0/24" } 加工规则 e_set("result",ip_to_format(v("ip"),2)) 加工结果 ip: 192.168.11.0/24 result: 192.168.11.0/255.255.255.0 按照prefix格式输出。 测试数据 { "ip": "192.168.11.0/24" } 加工规则 e_set("result",ip_to_format(v("ip"),1)) 加工结果 ip: 192.168.11.0/24 result: 192.168.11.0/24
  • ip_type 判断IP地址是私有地址还是公有地址。 函数格式 ip_type(ip, default="") 参数说明 参数名称 参数类型 是否必填 说明 ip String 是 IP地址。 default String 否 无法判断IP地址类型时,返回该值。 返回结果 IP类型private、reserved、loopback、public和allocated ripe ncc。 函数示例 私有地址。 测试数据 { "ip": "10.1.2.3" } 加工规则 e_set("result",ip_type(v("ip"))) 加工结果 ip: 10.1.2.3 result: private Ipv6地址。 测试数据 { "ip": "127.0.0.1" } 加工规则 e_set("result",ip_type(v("ip"))) 加工结果 ip: 127.0.0.1 result: loopback
  • ip_cidrmatch IP地址是否属于CIDR地址块。 函数格式 ip_cidrmatch(cidr_subnet, ip, default="") 参数说明 参数名称 参数类型 是否必填 说明 cidr_subnet String 是 CIDR地址块 ip String 是 IP地址。 default String 否 如果IP地址与CIDR地址块无法匹配时,返回该值。 返回结果 当IP地址属于CIDR地址块时,返回true,否则返回false。 函数示例 ipv4地址与CIDR地址块匹配。 测试数据 { "subnet": "192.168.1.0/24" } 加工规则 e_set("result",ip_cidrmatch(v("subnet"),"192.168.1.11")) 加工结果 subnet: 192.168.1.0/24 result: true ip地址与CIDR地址块无法匹配。 测试数据 { "subnet": "192.168.1.0/24" } 加工规则 e_set("result",ip_cidrmatch(v("subnet"),“192.168.100.10”, default="error")) 加工结果 subnet: 192.168.1.0/24 result: error
  • ip_version 判断IP地址为IPv4还是IPv6。 函数格式 ip_version(ip, default="") 参数说明 参数名称 参数类型 是否必填 说明 ip String 是 输入IP地址。 default String 否 无法判断IP地址版本时,返回该值。 返回结果 IPv4或IPv6。 函数示例 Ipv4地址。 测试数据 { "ip": "10.21.115.10" } 加工规则 e_set("version",ip_version(v("ip"))) 加工结果 ip: 10.21.115.10 version: IPv4 Ipv6地址。 测试数据 { "ip": "2001:0db8:85a3:0000:0000:8a2e:0370:7334" } 加工规则 e_set("version",ip_version(v("ip"))) 加工结果 ip: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 version: IPv6
  • ip_makenet 将单个IP地址转换为CIDR地址块。 函数格式 ip_makenet(ip, subnet_mask=None, default="") 参数说明 参数名称 参数类型 是否必填 说明 ip String 是 IP地址 subnet_mask String 是 子网掩码, 如果ip中输入的是IP网段,则子网掩码可以为空。 default String 否 无法将IP地址转成CIDR地址块时,返回该值。 返回结果 CIDR地址块。 函数示例 ip地址范围转为CIDR地址块。 测试数据 { "ip": "192.168.10.0-192.168.10.255" } 加工规则 e_set("result",ip_makenet(v("ip"))) 加工结果 ip: 192.168.10.0-192.168.10.255 result: 192.168.10.0/24 ip地址转为CIDR地址块。 测试数据 { "ip": "192.168.10.0" } 加工规则 e_set("result",ip_makenet(v("ip"), “255.255.255.0”)) 加工结果 ip: 192.168.10.0 result: 192.168.10.0/24
  • geo_parse 根据IP地址解析出所属国家、省份和城市等信息。 函数格式 geo_parse(ip, keep_fields=None, ip_sep=None) 参数说明 参数名称 参数类型 是否必填 说明 ip String 是 IP地址,表示解析该IP地址所属国家、省分和市信息。如果包含多个IP地址,可通过ip_sep参数指定分割符。 keep_fields Tuple 否 返回结果中包含的key信息。支持的key如下列表: city:城市名称。 province:省份名称。 country:国家名称。 isp:所属网络运营商名称。 lat:IP地址所在位置的纬度。 lon:IP地址所在位置的经度。 例如keep_fields=("city","country")表示仅输出city和country字段信息。 此外keep_fields也支持重命名。例如(("city","cty"),("country","state"))表示以cty和state形式输出。 注意:keep_fields参数为tuple类型,如果只有一个参数,需要添加逗号,例如("city",)或者(("city","cty"),) ip_sep String 否 IP地址分隔符,用于将包含多个IP地址的字符串分割为多个IP地址,解析结果通过JSON格式返回。默认值为None,表示不进行分隔。 返回结果 返回字典形式数据。 函数示例 单个IP查询。 测试数据 { "ip": "192.168.0.1" } 加工规则 e_set("geo_parse", geo_parse("192.168.0.1")) 加工结果(私网地址结果为空,使用公网地址可解析出内容) ip: 192.168.0.1 geo_parse: {"city": "", "province": "", "country": "", "isp": "", "lat": "", "lon": ""} 多个IP查询。 测试数据 { "ip": "192.168.0.1" } 加工规则 e_set("geo_parse", geo_parse("192.168.0.1,192.168.0.2", ip_sep=",")) 加工结果(私网地址结果为空,使用公网地址可解析出内容) geo_parse: {"192.168.0.1": {"province": "", "country": "", "lat": "", "lon": ""}, "192.168.0.2": {"city": "", "province": "", "country": "", "isp": "", "lat": "", "lon": ""}} ip: 192.168.0.1
  • url_parse_qs 解析URL中查询字符串的组成部分。 函数格式 url_parse_qs( url_qs, keep_blank_values=false, strict_parsing=false, encoding="utf-8", errors="replace", ignore_multi_fields=true, ) 参数说明 参数名称 数据类型 是否必填 说明 url_qs String 是 待解析的URL查询字符串。 keep_blank_values Boolean 否 是否返回值为空的参数。 false(默认值):不返回。 true:返回,且将空值处理为空字符串。 strict_parsing Boolean 否 是否处理解析错误。 true:解析报错会引发ValueError异常。 false(默认值):忽略错误。 encoding String 否 指定编码方式,将含有百分号(%)的转义字符解析为Unicode字符,默认为utf-8。支持ASCII。 errors String 否 按照编码方式无法识别字符时的处理方案。取值包括: ignore:直接忽略。 strict:直接报错,丢弃此条日志数据。 replace(默认值):使用半角问号(?)替换无法识别部分。 xmlcharrefreplace:使用对应XML字符替换无法识别部分。 ignore_multi_fields Num 否 指定单个返回参数的值的个数。 true(默认值):每个参数只返回第一个值, 类型为String。 false:每个参数都返回所有值,类型为List。 返回结果 返回解析后的JSON数据,具体参数说明如下表所示。 字段 说明 logType 日志类型 uid 日志的唯一标识 time 日志的时间 msg 日志中的信息 函数示例 示例1:设置keep_blank_values为true,返回结果中包含值为空的参数。 测试数据 { "content":"logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp" } 加工规则 e_set("url",url_parse_qs(v("content"), keep_blank_values=true)) 加工结果 content:logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp url:{ "logType": "net_wheel_log", "uid": "62452****", "vid": "6.1.0_gf_pc", "asb": "1206427", "git": "", "time": "22-11-3 上11时49分33秒", "operatingSystem": "Windows 10 (10.0.0) 64bit", "deviceModel": "System Product Name (System manufacturer)", "graphicsDeviceName": "NVIDIA GeForce GTX 1650", "graphicsDeviceType": "Direct3D11", "graphicsDeviceVendor": "NVIDIA", "graphicsDeviceVersion": "Direct3D 11.0 [level 11.1]", "graphicsMemorySize": "3962", "systemMemorySize": "8127", "processorCount": "6", "processorFrequency": "3000", "processorType": "Intel(R) Core(TM) i5-9500F CPU @ 3.00GHz", "deviceID": "96da5902a042a5f84118995f88373f73650e76be166589726****", "guessUID": "62452****", "networkReachability": "wifi", "msg": "GetAuthkeyRsp", } 示例2:设置keep_blank_values为默认值(false),返回结果无值为空的参数。 测试数据 { "content":"logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp" } 加工规则 e_set("url",url_parse_qs(v("content"))) 加工结果 content:logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp url:{ "logType": "net_wheel_log", "uid": "62452****", "vid": "6.1.0_gf_pc", "asb": "1206427", "time": "22-11-3 上11时49分33秒", "operatingSystem": "Windows 10 (10.0.0) 64bit", "deviceModel": "System Product Name (System manufacturer)", "graphicsDeviceName": "NVIDIA GeForce GTX 1650", "graphicsDeviceType": "Direct3D11", "graphicsDeviceVendor": "NVIDIA", "graphicsDeviceVersion": "Direct3D 11.0 [level 11.1]", "graphicsMemorySize": "3962", "systemMemorySize": "8127", "processorCount": "6", "processorFrequency": "3000", "processorType": "Intel(R) Core(TM) i5-9500F CPU @ 3.00GHz", "deviceID": "96da5902a042a5f84118995f88373f73650e76be166589726****", "guessUID": "62452****", "networkReachability": "wifi", "msg": "GetAuthkeyRsp", } 示例3:设置ignore_multi_fields为默认值(true),每个参数只返回第一个值。 测试数据 { "content":"logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456" } 加工规则 e_set("url",url_parse_qs(v("content"))) 加工结果 content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456 url:{ "logType": "net_log", "uid": "62452****", "x": "1" "asb": "123" } 示例4:设置ignore_multi_fields为false,每个参数返回所有值。 测试数据 { "content":"logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456" } 加工规则 e_set("url",url_parse_qs(v("content"),ignore_multi_fields=false)) 加工结果 content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456 url:{ "logType": ["net_log"], "uid": ["62452****"], "x": ["1", "2", "3"], "asb": ["123", "456"], }
  • ua_parse_all 解析User-Agent中的所有信息。 函数格式 ua_parse_all(value) 参数说明 参数名称 数据类型 是否必填 说明 value String 是 待解析的User-Agent字符串。 返回结果 返回JSON类型的数据集。 函数示例 测试数据 { "http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36" } 加工规则 e_set("new_column",ua_parse_all(v("http_user_agent"))) 加工结果 http_user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36 new_column: { "user_agent": { "family": "Chrome", "major": "192", "minor": "168", "patch": "0" }, "os": { "family": "Mac OS X", "major": "10", "minor": "9", "patch": "4" }, "device": { "family": "Mac", "brand": "Apple", "model": "Mac" } }
  • url_parse 解析URL的组成部分。 函数格式 url_parse(url, scheme="", allow_fragments=true) 参数说明 参数名称 数据类型 是否必填 说明 value String 是 待解析的URL。 scheme String 否 网络协议,默认为空字符。仅在URL中未指定网络协议时,返回结果中的scheme字段才会使用此处设置的值。 allow_fragments Boolean 否 是否解析URL中的fragment部分。 true(默认值):解析URL中的fragment部分,返回结果中的fragment字段为具体值。 false:不解析URL中的fragment部分,返回结果中的fragment字段为空字符串。 返回结果 返回解析后的JSON数据,具体参数说明如下表所示。 字段 说明 scheme 网络协议 netloc 网络位置 path 分层路径标识 query 查询组件 fragment 片段标识符 函数示例 示例1:使用默认参数,返回URL的各个组成部分。 测试数据 { "content":"https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib" } 加工规则 e_set("url",url_parse(v("content"))) 加工结果 content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib url:{ "scheme": "https", "netloc": "username:username@example.com:8083", "path": "/hello/asdah/", "params":"type=docx", "query": "filename=python3.docx", "fragment": "urllib", } 示例2:设置allow_fragments为false,返回结果中的fragment参数值为空。 测试数据 { "content":"https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib" } 加工规则 e_set("url",url_parse(v("content"),allow_fragments=false)) 加工结果 content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib url:{ "scheme": "https", "netloc": "username:username@example.com:8083", "path": "/hello/asdah/", "params": "type=docx", "query": "filename=python3.docx", "fragment": "", } 示例3:设置scheme为https,allow_fragments为false,返回结果中scheme参数值为https,fragment参数值为空。 测试数据 { "content":"//username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib" } 加工规则 e_set("url",url_parse(v("content"),scheme="https", allow_fragments=false)) 加工结果 content://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib url:{ "scheme": "https", "netloc": "username:username@example.com:8083", "path": "/hello/asdah/", "params": "type=docx", "query": "filename=python3.docx", "fragment": "", }
  • ua_parse_device 解析User-Agent中的设备信息。 函数格式 ua_parse_device(value) 参数说明 参数名称 数据类型 是否必填 说明 value String 是 待解析的User-Agent字符串。 返回结果 返回JSON类型的数据集。 函数示例 测试数据 { "http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36" } 加工规则 e_set("new_column",ua_parse_device(v("http_user_agent"))) 加工结果 http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36 new_column:{"family":"Mac","brand":"Apple","model":"Mac"}
  • ua_parse_agent 解析User-Agent中的浏览器信息。 函数格式 ua_parse_agent(value) 参数说明 参数名称 数据类型 是否必填 说明 value String 是 待解析的User-Agent字符串。 返回结果 返回JSON类型的数据集。 函数示例 测试数据 { "http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36" } 加工规则 e_set("new_column",ua_parse_agent(v("http_user_agent"))) 加工结果 http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36 new_column:{'family': 'Chrome', 'major': '192', 'minor': '168', 'patch': '0'
  • 函数列表 函数 说明 ua_parse_device 解析User-Agent中的设备信息。 ua_parse_os 解析User-Agent中的操作系统信息。 ua_parse_agent 解析User-Agent中的浏览器信息。 ua_parse_all 解析User-Agent中所有信息。 url_parse 解析URL的组成部分。 url_parse_qs 解析URL中查询字符串包含的参数。 User-Agent解析函数会剔除解析结果为None的字段,例如解析的设备数据为{'brand': None, 'family': 'Other', 'model': None},则brand字段和model字段将被剔除,最终的解析结果为{'family': 'Other'}。