日志服务支持如下IP函数。
重要
在日志服务分析语句中,表示字符串的字符必须使用单引号(”)包裹,无符号包裹或被双引号(””)包裹的字符表示字段名或列名。例如:’status’表示字符串status,status或”status”表示日志字段status。
函数类型 |
函数名称 |
语法 |
说明 |
IPv4地址函数 |
ip_to_city函数 |
ip_to_city(x) |
分析目标IPv4地址所属城市。 返回结果为城市的中文名称。 |
ip_to_city(x, ‘en’) |
分析目标IPv4地址所属城市。 返回结果为城市的行政区划代码。 |
||
ip_to_city_geo函数 |
ip_to_city_geo(x) |
分析目标IPv4地址所属城市的经纬度。此函数返回的是城市经纬度,每个城市只有一个经纬度。 |
|
ip_to_country函数 |
ip_to_country(x) |
分析目标IPv4地址所属国家或地区。 返回结果为国家或地区的中文名称。 |
|
ip_to_country(x, ‘en’) |
分析目标IPv4地址所属国家或地区。 返回结果为国家或地区的代码。 |
||
ip_to_country_code函数 |
ip_to_country_code(x) |
分析目标IPv4地址所属国家或地区。 返回结果为国家或地区的代码。 |
|
ip_to_domain函数 |
ip_to_domain(x) |
判断目标IPv4地址是内网地址还是外网地址。 |
|
ip_to_geo函数 |
ip_to_geo(x) |
分析目标IPv4地址所在位置的经纬度。 |
|
ip_to_provider函数 |
ip_to_provider(x) |
分析目标IPv4地址所对应的网络运营商。 |
|
ip_to_province函数 |
ip_to_province(x) |
分析目标IPv4地址所属省份。 返回结果为省份的中文名称。 |
|
ip_to_province(x, ‘en’) |
分析目标IPv4地址所属省份。 返回结果为省份的行政区划代码。 |
||
IPv4网段函数 |
ip_prefix函数 |
ip_prefix(x, prefix_bits) |
获取目标IPv4地址的前缀。 |
is_prefix_subnet_of函数 |
is_prefix_subnet_of(x, y) |
判断目标IPv4网段是否为某网段的子网。 |
|
is_subnet_of函数 |
is_subnet_of(x, y) |
判断目标IPv4地址是否在某网段内。 |
|
ip_subnet_max函数 |
ip_subnet_max(x) |
获取IPv4网段中的最大IP地址。 |
|
ip_subnet_min函数 |
ip_subnet_min(x) |
获取IPv4网段中的最小IP地址。 |
|
ip_subnet_range函数 |
ip_subnet_range(x) |
获取IPv4网段范围。 |
|
IPv6地址函数 |
ipv6_to_city函数 |
ipv6_to_city(x) |
分析目标IPv6地址所属城市的名称。 |
ipv6_to_city_code函数 |
ipv6_to_city_code(x) |
分析目标IPv6地址所属城市的行政区划代码。 |
|
ipv6_to_city_geo函数 |
ipv6_to_city_geo(x) |
分析目标IPv6地址所属城市的经纬度。 |
|
ipv6_to_country函数 |
ipv6_to_country(x) |
分析目标IPv6地址所属国家或地区。 |
|
ipv6_to_country_code函数 |
ipv6_to_country_code(x) |
分析目标IPv6地址所属国家或地区的代码。 |
|
ipv6_to_domain函数 |
ipv6_to_domain(x) |
判断目标IPv6地址是内网地址还是外网地址。 |
|
ipv6_to_provider函数 |
ipv6_to_provider(x) |
分析目标IPv6地址所对应的网络运营商。 |
|
ipv6_to_province函数 |
ipv6_to_province(x) |
分析目标IPv6地址所属省份。 |
|
ipv6_to_province_code函数 |
ipv6_to_province_code(x) |
分析目标IPv6地址所属省份的行政区划代码。 |
ip_to_city函数
ip_to_city函数用于分析目标IPv4地址所属城市。
语法
-
返回城市的中文名称。
ip_to_city(x)
-
返回城市的行政区划代码。
ip_to_city(x,'en')
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型。
示例
统计来自不同城市的请求的平均时间、最大时间以及最大时间对应的请求ID。
-
查询和分析语句
* | SELECT AVG(request_time) AS avg_request_time, MAX(request_time) AS max_request_time, MAX_BY(requestId, request_time) AS requestId, ip_to_city(client_ip) AS city GROUP BY city
-
查询和分析结果
ip_to_city_geo函数
ip_to_city_geo函数用于分析目标IPv4地址所属城市的经纬度。此函数返回的是城市经纬度,每个城市只有一个经纬度。
语法
ip_to_city_geo(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型,格式为纬度,经度
。
示例
统计IPv4地址的经纬度,确认客户端分布情况。
-
查询和分析语句
* | SELECT count(*) AS PV, ip_to_city_geo(client_ip) AS geo GROUP BY geo ORDER BY PV DESC
-
查询和分析结果
ip_to_country函数
ip_to_country函数用于分析目标IPv4地址所属国家或地区。
语法
-
返回国家或地区的中文名称。
ip_to_country(x)
-
返回国家或地区的代码。
ip_to_country(x,'en')
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型。
示例
统计来自不同国家或地区的请求的平均时间、最大时间以及最大时间对应的请求ID。
-
查询和分析语句
* | SELECT AVG(request_time) AS avg_request_time, MAX(request_time) AS max_request_time, MAX_BY(requestId, request_time) AS requestId, ip_to_country(client_ip) AS country GROUP BY country
-
查询和分析结果
ip_to_country_code函数
ip_to_country_code函数用于分析目标IPv4地址所属国家或地区,返回国家或地区的代码。
语法
ip_to_country_code(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型。
示例
统计来自不同国家或地区的请求的平均时间、最大时间以及最大时间对应的请求ID。
-
查询和分析语句
* | SELECT AVG(request_time) AS avg_request_time, MAX(request_time) AS max_request_time, MAX_BY(requestId, request_time) AS requestId, ip_to_country_code(client_ip) AS country GROUP BY country
-
查询和分析结果
ip_to_domain函数
ip_to_domain函数用于判断目标IPv4地址是内网地址还是外网地址。
语法
ip_to_domain(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型,返回intranet或internet。
-
intranet表示内网。
-
internet表示外网。
示例
统计不是来自内网的请求总数。
-
查询和分析语句
* | SELECT count(*) AS PV where ip_to_domain(client_ip) != 'intranet'
-
查询和分析结果
ip_to_geo函数
ip_to_geo函数用于分析目标IPv4地址所在位置的经纬度。关于geohash函数的详细信息,请参见地理函数。
语法
ip_to_geo(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型,格式为纬度,经度
。
示例
统计IPv4地址的经纬度,确认客户端分布情况。
-
查询和分析语句
* | SELECT count(*) AS PV, ip_to_geo(client_ip) AS geo GROUP BY geo ORDER BY PV DESC
-
查询和分析结果
ip_to_provider函数
ip_to_provider函数用于分析目标IPv4地址对应的网络运营商。
语法
ip_to_provider(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型。
示例
统计通过不同网络运营商发起的请求的平均请求时间。
-
查询和分析语句
* | SELECT avg(request_time) AS avg_request_time, ip_to_provider(client_ip) AS provider GROUP BY provider ORDER BY avg_request_time
-
查询和分析结果
ip_to_province函数
ip_to_province函数分析目标IPv4地址所属省份。
语法
-
返回省份的中文名称。
ip_to_province(x)
-
返回省份的行政区划代码。
ip_to_province(x,'en')
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
返回值类型
varchar类型。
示例
统计请求总数Top10的省份。
-
查询和分析语句
* | SELECT count(*) as PV, ip_to_province(client_ip) AS province GROUP BY province ORDER BY PV desc LIMIT 10
如果上述结果中包含了内网请求,且您希望过滤这部分请求,可参考如下查询和分析语句。
* | SELECT count(*) AS PV, ip_to_province(client_ip) AS province WHERE ip_to_domain(client_ip) != 'intranet' GROUP BY province ORDER BY PV DESC LIMIT 10
-
查询和分析结果
ip_prefix函数
ip_prefix函数用于获取目标IPv4地址的前缀。返回子网掩码格式的IPv4地址,例如192.168.1.0/24。
语法
ip_prefix(x, prefix_bits)
参数说明
参数 |
说明 |
x |
参数值为IPv4地址。 |
prefix_bits |
前缀位数。 |
返回值类型
varchar类型。
示例
获取client_ip字段值的IP地址前缀。
-
查询和分析语句
* | SELECT ip_prefix(client_ip,24) AS client_ip
-
查询和分析结果
is_prefix_subnet_of函数
is_prefix_subnet_of函数用于判断目标网段是否为某网段的子网。
语法
is_prefix_subnet_of(x, y)
参数说明
参数 |
说明 |
x |
参数值为IPv4网段。y网段是否属于x网段内。 |
y |
参数值为IPv4网段。 |
返回值类型
boolean类型。
示例
判断client_ip字段值所在网段是否属于192.168.0.1/24网段内。
-
查询和分析语句
* | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24'))
-
查询和分析结果
is_subnet_of函数
is_subnet_of函数用于判断目标IPv4地址是否在某网段内。
语法
is_subnet_of(x, y)
参数说明
参数 |
说明 |
x |
参数值为IPv4网段。 |
y |
参数值为IPv4地址。 |
返回值类型
boolean类型。
示例
判断client_ip字段值是否属于192.168.0.1/24网段内。
-
查询和分析语句
* | SELECT is_subnet_of('192.168.0.1/24',client_ip)
-
查询和分析结果
ip_subnet_min函数
ip_subnet_min函数用于获取IPv4网段中的最小IP地址。
语法
ip_subnet_min(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4网段。 |
返回值类型
varchar类型。
示例
获取client_ip字段值所在网段的最小IP地址。
-
查询和分析语句
* | SELECT ip_subnet_min(concat(client_ip,'/24'))
-
查询和分析结果
ip_subnet_max函数
ip_subnet_max函数用于获取IPv4网段中最大IP地址。
语法
ip_subnet_max(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4网段。 |
返回值类型
varchar类型。
示例
获取client_ip字段值所在网段的最大IP地址。
-
查询和分析语句
* | SELECT ip_subnet_max(concat(client_ip,'/24'))
-
查询和分析结果
ip_subnet_range函数
ip_subnet_range用于获取IPv4网段范围。
语法
ip_subnet_range(x)
参数说明
参数 |
说明 |
x |
参数值为IPv4网段。 |
返回值类型
JSON类型。
示例
获取client_ip字段值所在网段的范围。
-
查询和分析语句
* | SELECT ip_subnet_range(concat(client_ip,'/24'))
-
查询和分析结果
ipv6_to_city函数
ipv6_to_city函数用于分析目标IPv6地址所属城市的名称。
语法
ipv6_to_city(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
统计不同城市请求的数量。
-
查询和分析语句
* | SELECT ipv6_to_city(ipv6Address) AS city, count(*) AS count GROUP BY city
-
查询和分析结果
ipv6_to_city_code函数
ipv6_to_city_code函数用于分析目标IPv6地址所属城市的行政区划代码。
语法
ipv6_to_city_code(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
获取IPv6对应城市的行政区划代码。
-
查询和分析语句
* | SELECT ipv6Address, ipv6_to_city_code(ipv6Address) AS cityCode WHERE cityCode ''
-
查询和分析结果
ipv6_to_city_geo函数
ipv6_to_city_geo函数用于分析目标IPv6地址所属城市的经纬度。
语法
ipv6_to_city_geo(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型,格式为经度,纬度
。
示例
统计IPv6地址的经纬度,确认客户端分布情况。
-
查询和分析语句
* | SELECT ipv6_to_city_geo(ipv6Address) AS geo, count(*) AS PV GROUP BY geo ORDER BY PV DESC
-
查询和分析结果
ipv6_to_country函数
ipv6_to_country函数用于分析目标IPv6地址所属国家或地区。
语法
ipv6_to_country(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
统计请求总数Top10的国家或地域。
-
查询和分析语句
* | SELECT count(*) AS PV, ipv6_to_country(ipv6Address) AS country WHERE country '' GROUP BY country ORDER BY PV DESC LIMIT 10
-
查询和分析结果
ipv6_to_country_code函数
ipv6_to_country_code函数用于分析目标IPv6地址所属国家或地区的代码。
语法
ipv6_to_country_code(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
获取IPv6地址所属国家或地区的代码。
-
查询和分析语句
* | SELECT ipv6Address, ipv6_to_country_code(ipv6Address) AS code WHERE cityCode ''
-
查询和分析结果
ipv6_to_domain函数
ipv6_to_domain函数用于判断目标IP地址是内网地址还是外网地址。
语法
ipv6_to_domain(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型,返回intranet或internet。
-
intranet表示内网。
-
internet表示外网。
示例
统计内外网请求的总数。
-
查询和分析语句
* | SELECT ipv6_to_domain(ipv6Address) AS domain, count(*) AS count GROUP BY domain
-
查询和分析结果
ipv6_to_provider函数
ipv6_to_provider函数用于分析目标IP地址所对应的网络运营商。
语法
ipv6_to_provider(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
统计请求总数Top10的网络运营商。
-
查询和分析语句
* | SELECT ipv6_to_provider(ipv6Address) AS provider, count(*) AS count GROUP BY provider ORDER BY count DESC LIMIT 10
-
查询和分析结果
ipv6_to_province函数
ipv6_to_province函数用于分析目标IPv6地址所属省份。
语法
ipv6_to_province(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
统计请求总数Top10的省份。
-
查询和分析语句
* | SELECT count(*) AS PV, ipv6_to_province(ipv6Address) AS province WHERE province '' GROUP BY province ORDER BY PV DESC LIMIT 10
-
查询和分析结果
ipv6_to_province_code函数
ipv6_to_province_code函数用于分析目标IPv6地址所属省份的行政区划代码。
语法
ipv6_to_province_code(x)
参数说明
参数 |
说明 |
x |
参数值为IPv6的地址。 |
返回值类型
varchar类型
示例
获取IPv6地址所属省份的行政区划代码。
-
查询和分析语句
* | SELECT ipv6Address, ipv6_to_province_code(ipv6Address) AS code WHERE cityCode ''
-
查询和分析结果
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/160602.html