Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones IP

Última actualización: Sep 02, 2026

Este tema describe la sintaxis básica y los ejemplos de las funciones IP.

Simple Log Service admite las siguientes funciones IP.

Importante

En las instrucciones analíticas de Log Service, encierre las cadenas entre comillas simples (''). Log Service interpreta los valores sin comillas o aquellos encerrados entre comillas dobles ("") como un nombre de campo o de columna. Por ejemplo, 'status' es una cadena, mientras que status o "status" hace referencia al campo de registro llamado status.

Categoría

Función

Sintaxis

Descripción

SQL

SPL

Funciones de dirección IPv4

ip_to_city function

ip_to_city(x)

Devuelve el nombre en chino de la ciudad correspondiente a la dirección IPv4 especificada.

√

×

ip_to_city(x, 'en')

Devuelve el código de división administrativa de la ciudad correspondiente a la dirección IPv4 especificada.

√

×

ip_to_city_geo function

ip_to_city_geo(x)

Devuelve la longitud y latitud de la ciudad correspondiente a la dirección IPv4 especificada. Cada ciudad corresponde a un único par de longitud y latitud.

√

×

ip_to_country function

ip_to_country(x)

Devuelve el nombre en chino del país o región correspondiente a la dirección IPv4 especificada.

√

×

ip_to_country(x, 'en')

Devuelve el código de país o región correspondiente a la dirección IPv4 especificada.

√

×

ip_to_country_code function

ip_to_country_code(x)

Devuelve el código de país o región correspondiente a la dirección IPv4 especificada.

El resultado devuelto es el código de país o región.

√

×

ip_to_domain function

ip_to_domain(x)

Determina si la dirección IPv4 especificada es una dirección privada o pública.

√

×

ip_to_geo function

ip_to_geo(x)

Devuelve la longitud y latitud correspondientes a la dirección IPv4 especificada.

√

×

ip_to_provider function

ip_to_provider(x)

Devuelve el proveedor de servicios de Internet (ISP) correspondiente a la dirección IPv4 especificada.

√

×

ip_to_province function

ip_to_province(x)

Devuelve el nombre en chino del state correspondiente a la dirección IPv4 especificada.

El resultado devuelto es el nombre en chino del state.

√

×

ip_to_province(x, 'en')

Devuelve el código de división administrativa del state correspondiente a la dirección IPv4 especificada.

El resultado es el código de división administrativa del state.

√

×

Funciones de bloque CIDR IPv4

ip_prefix function

ip_prefix(x, prefix_bits)

Devuelve el prefijo de red para la dirección IPv4 y la longitud de prefijo especificadas.

√

×

is_prefix_subnet_of function

is_prefix_subnet_of(x, y)

Determina si un bloque CIDR IPv4 es subred de otro.

√

×

is_subnet_of function

is_subnet_of(x, y)

Comprueba si una dirección IPv4 se encuentra dentro de un bloque CIDR IPv4 especificado.

√

×

ip_subnet_max function

ip_subnet_max(x)

Devuelve la dirección IP más alta en el bloque CIDR IPv4 especificado.

√

×

ip_subnet_min function

ip_subnet_min(x)

Devuelve la dirección IP más baja en el bloque CIDR IPv4 especificado.

√

×

ip_subnet_range function

ip_subnet_range(x)

Devuelve el rango de direcciones IP del bloque CIDR IPv4 especificado.

√

×

Funciones de dirección IPv6

ipv6_to_city function

ipv6_to_city(x)

Devuelve el nombre en chino de la ciudad correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_city_code function

ipv6_to_city_code(x)

Devuelve el código de división administrativa de la ciudad correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_city_geo function

ipv6_to_city_geo(x)

Devuelve la longitud y latitud de la ciudad correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_country function

ipv6_to_country(x)

Devuelve el nombre en chino del país o región correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_country_code function

ipv6_to_country_code(x)

Devuelve el código de país o región correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_domain function

ipv6_to_domain(x)

Determina si la dirección IPv6 especificada es una dirección privada o pública.

√

×

ipv6_to_provider function

ipv6_to_provider(x)

Devuelve el proveedor de servicios de Internet (ISP) correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_province function

ipv6_to_province(x)

Devuelve el nombre en chino de la provincia correspondiente a la dirección IPv6 especificada.

√

×

ipv6_to_province_code function

ipv6_to_province_code(x)

Devuelve el código de división administrativa de la provincia correspondiente a la dirección IPv6 especificada.

√

×

Función ip_to_city

La función ip_to_city devuelve la ciudad correspondiente a una dirección IPv4 especificada.

Sintaxis

  • Devuelve el nombre en chino de una ciudad.

    ip_to_city(x)
  • Devuelve el código de división administrativa de una ciudad.

    ip_to_city(x,'en')

Parámetros

Parámetro

Descripción

x

Una dirección IPv4.

Tipo de valor devuelto

varchar

Ejemplos

Este ejemplo calcula el tiempo promedio de solicitud, el tiempo máximo de solicitud y el ID de solicitud asociado al tiempo máximo para cada ciudad.

  • Instrucción de consulta y análisis

    * |
    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
  • La consulta devuelve tres registros: Tianjin (avg_request_time: 44.85, max_request_time: 80.0, requestId: i-02); Lijiang (avg_request_time: 46.47, max_request_time: 80.0, requestId: i-01); y Hegang (avg_request_time: 43.87, max_request_time: 80.0, requestId: i-01).

Función ip_to_city_geo

La función ip_to_city_geo devuelve la longitud y latitud de la ciudad correspondiente a una dirección IPv4 especificada.

Sintaxis

ip_to_city_geo(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv4.

Tipo de valor devuelto

Una cadena varchar con el formato latitude,longitude.

Ejemplos

Obtenga la longitud y latitud de las direcciones IPv4 para mapear la distribución de clientes.

  • Instrucción de consulta

    * |
    SELECT
      count(*) AS PV,
      ip_to_city_geo(client_ip) AS geo
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • La consulta devuelve dos filas. La primera fila tiene un PV de 9113 y un valor geo de 39.9288,116.389 (Beijing). La segunda fila tiene un PV de 5784 y un valor geo de 31.2222,121.458060 (Shanghai).

Función ip_to_country

La función ip_to_country devuelve el país o región correspondiente a una dirección IPv4 especificada.

Sintaxis

  • Devuelve el nombre del país o región en chino.

    ip_to_country(x)
  • Devuelve el código de país o región.

    ip_to_country(x,'en')

Parámetros

Parámetro

Descripción

x

Una dirección IPv4.

Tipo de valor devuelto

varchar

Ejemplos

Este ejemplo calcula el tiempo promedio de solicitud, el tiempo máximo de solicitud y el ID de solicitud correspondiente al tiempo máximo para cada país o región.

  • Instrucción de consulta

    * |
    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
  • Los resultados de la consulta y el análisis muestran tres registros: Hong Kong (China) (avg_request_time: 45.27, max_request_time: 80.0, requestId: i-02); Australia (avg_request_time: 47.08, max_request_time: 80.0, requestId: i-01); e India (avg_request_time: 39.39, max_request_time: 77.0, requestId: i-01).

Uso en Data Transformation (nuevo editor)

Data Transformation (nuevo editor) utiliza sintaxis SPL e invoca funciones IP mediante la instrucción extend. La sintaxis DSL heredada que combina e_set con v() ya no es compatible.

El siguiente ejemplo analiza el país y la ciudad de un campo IP:

* | extend country = ip_to_country(ip), city = ip_to_city(ip)

Resultado de análisis de muestra: 203.0.113.1 → country: United States, city: Richardson.

Función ip_to_country_code

La función ip_to_country_code devuelve el código de país o región para una dirección IPv4 dada.

Sintaxis

ip_to_country_code(x)

Parámetros

Parámetro

Descripción

x

La dirección IPv4.

Tipo de valor devuelto

varchar

Ejemplos

La siguiente consulta calcula el tiempo promedio de solicitud, el tiempo máximo de solicitud y el ID de solicitud asociado al tiempo máximo de solicitud para cada país o región.

  • Consulta

    * |
    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
  • La consulta devuelve dos filas de resultados. En la primera fila, avg_request_time es 45.012, max_request_time es 80.0, requestId es i-01 y country es MO. En la segunda fila, avg_request_time es 46.286, max_request_time es 77.0, requestId es i-02 y country es GB.

Función ip_to_domain

La función ip_to_domain determina si una dirección IPv4 es una dirección privada o una dirección pública.

Sintaxis

ip_to_domain(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv4.

Tipo de valor devuelto

Devuelve una cadena varchar con uno de los siguientes valores:

  • 'intranet': indica una dirección privada.

  • 'internet': indica una dirección pública.

Ejemplos

Cuente el número de solicitudes que no se originan en una red privada.

  • Instrucción de consulta

    * |
    SELECT
      count(*) AS PV
    where
      ip_to_domain(client_ip) != 'intranet'
  • Resultados de la consulta y el análisis: El recuento de PV es 941786.

Función ip_to_geo

La función ip_to_geo devuelve la latitud y longitud correspondientes a una dirección IPv4 especificada. Para obtener más información sobre las funciones geográficas, consulte Geo functions.

Sintaxis

ip_to_geo(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv4.

Tipo de valor devuelto

Una cadena varchar con el formato latitude,longitude.

Ejemplos

Este ejemplo recupera la latitud y longitud de las direcciones IPv4 para identificar la distribución de clientes.

  • Instrucción de consulta

    * |
    SELECT
      count(*) AS PV,
      ip_to_geo(client_ip) AS geo
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • Los resultados de la consulta y el análisis contienen dos registros de muestra: uno con un PV de 5122 y un geo de 39.1423,117,173, y otro con un PV de 4960 y un geo de 29.5569,106,553.

Función ip_to_provider

La función ip_to_provider devuelve el ISP de una dirección IPv4.

Sintaxis

ip_to_provider(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv4.

Tipo de valor devuelto

Una cadena varchar.

Ejemplos

Calcule el tiempo promedio de solicitud por ISP.

  • Instrucción de consulta

    * |
    SELECT
      avg(request_time) AS avg_request_time,
      ip_to_provider(client_ip) AS provider
    GROUP BY
      provider
    ORDER BY
      avg_request_time
  • La consulta devuelve tres filas. Los valores de avg_request_time son 18.0, 25.0 y 26.0, con los valores de proveedor correspondientes: Reliance Communications, CAT y Wangsu.

Función ip_to_province

La función ip_to_province devuelve el state correspondiente a una dirección IPv4 dada.

Sintaxis

  • Devuelve el nombre en chino del state.

    ip_to_province(x)
  • Devuelve el nombre en inglés del state.

    ip_to_province(x,'en')

Parámetros

Parámetro

Descripción

x

La dirección IPv4 que se va a consultar.

Tipo de valor devuelto

VARCHAR

Ejemplos

Calcule las 10 principales states por total de solicitudes.

  • Instrucción de consulta

    * |
    SELECT
      count(*) as PV,
      ip_to_province(client_ip) AS province
    GROUP BY
      province
    ORDER BY
      PV desc
    LIMIT
      10

    Para filtrar las solicitudes de intranet de los resultados, utilice la siguiente instrucción de consulta.

    * |
    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
  • Resultados de la consulta: Al ejecutar la primera instrucción de consulta se obtiene una tabla con las columnas PV y province. Los resultados están ordenados por PV en orden descendente. En los resultados de muestra, la provincia de Guangdong ocupa el primer lugar con un PV de 368. Si una dirección IP no se puede resolver a una provincia, el valor en la columna province estará vacío.

Función ip_prefix

La función ip_prefix devuelve el prefijo de subred para una dirección IPv4 dada en notación CIDR, como 192.168.1.0/24.

Sintaxis

ip_prefix(x, prefix_bits)

Parámetros

Parámetro

Descripción

x

La dirección IPv4.

prefix_bits

La longitud del prefijo.

Tipo de valor devuelto

varchar

Ejemplos

Obtenga el prefijo de subred para las direcciones IP en el campo client_ip.

  • Instrucción de consulta

    * | SELECT ip_prefix(client_ip,24) AS client_ip
  • La consulta devuelve una columna client_ip que contiene prefijos de subred /24, como xx.xx.xx.0/24.

is_prefix_subnet_of

is_prefix_subnet_of comprueba si un bloque CIDR IPv4 es subred de otro.

Sintaxis

is_prefix_subnet_of(x, y)

Parámetros

Parámetro

Descripción

x

El bloque CIDR IPv4 principal.

y

El bloque CIDR IPv4 que se va a probar como posible subred.

Tipo de valor devuelto

Devuelve un valor booleano: true si y es una subred de x, y false en caso contrario.

Ejemplos

Este ejemplo comprueba si el bloque CIDR derivado del campo client_ip es una subred de 192.168.0.1/24.

  • Instrucción de consulta

    * | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24'))
  • Los resultados de la consulta y el análisis contienen una columna _col0 con dos filas, ambas con el valor false. Un valor false indica que el client_ip del registro correspondiente no se encuentra en la subred 192.168.0.1/24.

Función is_subnet_of

La función is_subnet_of determina si una dirección IPv4 se encuentra dentro de un bloque CIDR.

Sintaxis

is_subnet_of(x, y)

Parámetros

Parámetro

Descripción

x

El bloque CIDR IPv4.

y

La dirección IPv4.

Tipo de valor devuelto

Boolean

Ejemplos

Compruebe si el valor del campo client_ip se encuentra en el bloque CIDR 192.168.0.1/24.

  • Instrucción de consulta

    * | SELECT is_subnet_of('192.168.0.1/24',client_ip)

Función ip_subnet_min

La función ip_subnet_min devuelve la dirección IP más baja en un bloque CIDR IPv4.

Sintaxis

ip_subnet_min(x)

Parámetros

Parámetro

Descripción

x

Un bloque CIDR IPv4.

Tipo de valor devuelto

varchar

Ejemplos

Este ejemplo devuelve la dirección IP más baja en el bloque CIDR que contiene la dirección IP del campo client_ip.

  • Instrucción de consulta

    * | SELECT ip_subnet_min(concat(client_ip,'/24'))
  • La consulta devuelve una sola fila con una columna llamada _col0. Esta columna muestra la dirección IP más baja en el bloque CIDR /24 que contiene el client_ip. Parte del contenido está oculto.

Función ip_subnet_max

La función ip_subnet_max devuelve la dirección IP más alta en un bloque CIDR IPv4.

Sintaxis

ip_subnet_max(x)

Parámetros

Parámetro

Descripción

x

Un bloque CIDR IPv4.

Tipo de valor devuelto

varchar

Ejemplos

Calcula la dirección IP más alta de la subred /24 para la dirección IP en el campo client_ip.

  • Instrucción de consulta y análisis

    * | SELECT ip_subnet_max(concat(client_ip,'/24'))
  • La columna _col0 muestra el resultado de la función ip_subnet_max: la dirección IP más alta de la subred /24. Parte del contenido está redactado.

ip_subnet_range

La función ip_subnet_range devuelve las direcciones inicial y final de un bloque CIDR IPv4.

Sintaxis

ip_subnet_range(x)

Parámetros

Parámetro

Descripción

x

Un bloque CIDR IPv4.

Tipo de valor devuelto

Un arreglo JSON.

Ejemplos

Recupere el rango de direcciones del bloque CIDR IPv4 que contiene la dirección IP en el campo client_ip.

  • Instrucción de consulta y análisis

    * | SELECT ip_subnet_range(concat(client_ip,'/24'))
  • Los resultados de la consulta y el análisis contienen la columna _col0. Esta columna contiene un arreglo JSON, como ["xxx.xxx.xxx.0","xxx.xxx.xxx.255"], que representa las direcciones inicial y final del bloque CIDR IPv4.

ipv6_to_city

La función ipv6_to_city devuelve la ciudad correspondiente a una dirección IPv6 específica.

Sintaxis

ipv6_to_city(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

varchar

Ejemplos

Cuente las solicitudes por ciudad.

  • Instrucción de consulta y análisis

    * |
    SELECT
      ipv6_to_city(ipv6Address) AS city,
      count(*) AS count
    GROUP BY
      city
  • Los resultados de la consulta y el análisis enumeran cada ciudad con su recuento de registros; por ejemplo: Anyang (18), Baoding (42), Baoshan (3) y Binzhou (9).

Ipv6_to_city_code

La función ipv6_to_city_code devuelve el código de división administrativa de la ciudad correspondiente a una dirección IPv6 específica.

Sintaxis

ipv6_to_city_code(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

varchar

Ejemplos

Este ejemplo obtiene el código de división administrativa de la ciudad para una dirección IPv6.

  • Instrucción de consulta

    * |
    SELECT
      ipv6Address,
      ipv6_to_city_code(ipv6Address) AS cityCode
    WHERE
      cityCode <> ''
  • Resultados de la consulta y el análisis: La función ipv6_to_city_code convierte la dirección IPv6 y devuelve un cityCode de 350100.

Ipv6_to_city_geo

La función ipv6_to_city_geo devuelve la longitud y latitud de una dirección IPv6.

Sintaxis

ipv6_to_city_geo(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

La función devuelve una cadena varchar con el formato longitud,latitud.

Ejemplos

Este ejemplo muestra cómo obtener la longitud y latitud de direcciones IPv6 para analizar la distribución de los clientes.

  • Instrucción de consulta

    * |
    SELECT
      ipv6_to_city_geo(ipv6Address) AS geo,
      count(*) AS PV
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • La consulta devuelve las columnas geo y PV. Los resultados de muestra, presentados como pares (geo, PV), incluyen: (133.397995,-24.9121, 6270), (10.45415,51.164181, 3813), (-2.23001,54.314072, 2055) y (121.5654268,25.0329636, 1893).

Función ipv6_to_country

La función ipv6_to_country identifica el país o región de una dirección IPv6 específica.

Sintaxis

ipv6_to_country(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

varchar

Ejemplos

Calcule los 10 principales países o regiones según el número total de solicitudes.

  • Instrucción de consulta

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_country(ipv6Address) AS country
    WHERE
      country <> ''
    GROUP BY
      country
    ORDER BY
      PV DESC
    LIMIT
      10
  • Resultados de la consulta y el análisis: La consulta devuelve 10 registros. Por ejemplo: Alemania (3813), Taiwán (2337), Reino Unido (2055), Suecia (1119), Países Bajos (1014), Estados Unidos (942), Rusia (930) y Malasia (867)...

ipv6_to_country_code

La función ipv6_to_country_code devuelve el código de país o región de una dirección IPv6.

Sintaxis

ipv6_to_country_code(x)

Parámetros

Parámetro

Descripción

x

La dirección IPv6.

Tipo de valor devuelto

Devuelve un valor varchar.

Ejemplos

Este ejemplo obtiene el código de país o región de una dirección IPv6.

  • Instrucción de consulta

    * |
    SELECT
      ipv6Address,
      ipv6_to_country_code(ipv6Address) AS code
    WHERE
      cityCode <> ''
  • En los resultados de la consulta, la función ipv6_to_country_code resuelve una dirección IPv6 a su código de país; por ejemplo, CN para una dirección en China.

Función ipv6_to_domain

La función ipv6_to_domain clasifica una dirección IPv6 como dirección privada o dirección pública.

Sintaxis

ipv6_to_domain(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

varchar. La función devuelve uno de los siguientes valores:

  • intranet: Dirección privada.

  • internet: Dirección pública.

Ejemplos

Este ejemplo cuenta las solicitudes provenientes de redes privadas y redes públicas.

  • Instrucción de consulta y análisis

    * |
    SELECT
      ipv6_to_domain(ipv6Address) AS domain,
      count(*) AS count
    GROUP BY
      domain
  • La consulta devuelve una tabla con dos columnas: domain y count. En este ejemplo, el recuento para intranet es 9 y para internet es 38,067.

Función ipv6_to_provider

La función ipv6_to_provider devuelve el ISP de una dirección IPv6 específica.

Sintaxis

ipv6_to_provider(x)

Parámetros

Parámetro

Descripción

x

La dirección IPv6.

Tipo de valor devuelto

varchar

Ejemplos

Este ejemplo identifica los 10 principales ISP según el total de solicitudes.

  • Instrucción de consulta y análisis

    * |
    SELECT
      ipv6_to_provider(ipv6Address) AS provider,
      count(*) AS count
    GROUP BY
      provider
    ORDER BY
      count DESC
    LIMIT
      10
  • Resultados de la consulta y el análisis: La consulta devuelve una lista de ISP ordenada por recuento de solicitudes en orden descendente. Los 10 principales resultados incluyen entradas como edu.tw (2235), colt.net (1512), maxis.com.my (780), citictel-cpc.com (453), CSTNET (348), ntt.com (261), att.com (258) y libertyglobal.com (174).

Función ipv6_to_province

La función ipv6_to_province devuelve la provincia de una dirección IPv6.

Sintaxis

ipv6_to_province(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

varchar

Ejemplos

Este ejemplo identifica las 10 principales provincias según el número total de solicitudes.

  • Instrucción de consulta y análisis

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_province(ipv6Address) AS province
    WHERE
      province <> ''
    GROUP BY
      province
    ORDER BY
      PV DESC
    LIMIT
      10
  • Resultados de la consulta y el análisis: La consulta devuelve las columnas PV y province, ordenadas por PV en orden descendente. Los resultados de muestra incluyen Jiangsu (564), Guangdong (558), Territorio Federal de Kuala Lumpur (555), Shandong (507), Henan (435), Sichuan (354), Zhejiang (336) y Anhui (312).

Función ipv6_to_province_code

La función ipv6_to_province_code devuelve el código de división administrativa de la provincia correspondiente a una dirección IPv6 específica.

Sintaxis

ipv6_to_province_code(x)

Parámetros

Parámetro

Descripción

x

Una dirección IPv6.

Tipo de valor devuelto

varchar

Ejemplos

Obtenga el código de división administrativa de la provincia asociada a una dirección IPv6.

  • Instrucción de consulta

    * |
    SELECT
      ipv6Address,
      ipv6_to_province_code(ipv6Address) AS code
    WHERE
      cityCode <> ''
  • Resultados de la consulta: La columna ipv6Address enumera varias direcciones IPv6 redactadas, mientras que la columna code muestra su código de provincia correspondiente: 350000.