Todos os produtos
Search
Central de documentação

Simple Log Service:Funções IP

Última atualização: Aug 26, 2026

Este tópico descreve a sintaxe básica e exemplos das funções IP.

O Simple Log Service oferece suporte às seguintes funções IP.

Importante

Nas instruções analíticas do Log Service, coloque strings entre aspas simples (''). O Log Service interpreta valores sem aspas ou entre aspas duplas ("") como nomes de campos ou colunas. Por exemplo, 'status' é uma string, enquanto status ou "status" refere-se ao campo de log chamado status.

Categoria

Função

Sintaxe

Descrição

SQL

SPL

Funções de endereço IPv4

ip_to_city function

ip_to_city(x)

Retorna o nome em chinês da cidade do endereço IPv4 especificado.

√

×

ip_to_city(x, 'en')

Retorna o código de divisão administrativa da cidade do endereço IPv4 especificado.

√

×

ip_to_city_geo function

ip_to_city_geo(x)

Retorna a longitude e a latitude da cidade do endereço IPv4 especificado. Cada cidade corresponde a um único par de longitude e latitude.

√

×

ip_to_country function

ip_to_country(x)

Retorna o nome em chinês do país ou região do endereço IPv4 especificado.

√

×

ip_to_country(x, 'en')

Retorna o código do país ou região do endereço IPv4 especificado.

√

×

ip_to_country_code function

ip_to_country_code(x)

Retorna o código do país ou região do endereço IPv4 especificado.

O resultado retornado é o código do país ou região.

√

×

ip_to_domain function

ip_to_domain(x)

Determina se o endereço IPv4 especificado é privado ou público.

√

×

ip_to_geo function

ip_to_geo(x)

Retorna a longitude e a latitude do endereço IPv4 especificado.

√

×

ip_to_provider function

ip_to_provider(x)

Retorna o provedor de serviços de Internet (ISP) do endereço IPv4 especificado.

√

×

ip_to_province function

ip_to_province(x)

Retorna o nome em chinês da estado do endereço IPv4 especificado.

O resultado retornado é o nome em chinês da estado.

√

×

ip_to_province(x, 'en')

Retorna o código de divisão administrativa da estado do endereço IPv4 especificado.

O resultado é o código de divisão administrativa da estado.

√

×

Funções de bloco CIDR IPv4

ip_prefix function

ip_prefix(x, prefix_bits)

Retorna o prefixo de rede do endereço IPv4 e comprimento de prefixo especificados.

√

×

is_prefix_subnet_of function

is_prefix_subnet_of(x, y)

Determina se um bloco CIDR IPv4 é sub-rede de outro.

√

×

is_subnet_of function

is_subnet_of(x, y)

Verifica se um endereço IPv4 pertence a um bloco CIDR IPv4 especificado.

√

×

ip_subnet_max function

ip_subnet_max(x)

Retorna o maior endereço IP no bloco CIDR IPv4 especificado.

√

×

ip_subnet_min function

ip_subnet_min(x)

Retorna o menor endereço IP no bloco CIDR IPv4 especificado.

√

×

ip_subnet_range function

ip_subnet_range(x)

Retorna o intervalo de endereços IP do bloco CIDR IPv4 especificado.

√

×

Funções de endereço IPv6

ipv6_to_city function

ipv6_to_city(x)

Retorna o nome em chinês da cidade do endereço IPv6 especificado.

√

×

ipv6_to_city_code function

ipv6_to_city_code(x)

Retorna o código de divisão administrativa da cidade do endereço IPv6 especificado.

√

×

ipv6_to_city_geo function

ipv6_to_city_geo(x)

Retorna a longitude e a latitude da cidade do endereço IPv6 especificado.

√

×

ipv6_to_country function

ipv6_to_country(x)

Retorna o nome em chinês do país ou região do endereço IPv6 especificado.

√

×

ipv6_to_country_code function

ipv6_to_country_code(x)

Retorna o código do país ou região do endereço IPv6 especificado.

√

×

ipv6_to_domain function

ipv6_to_domain(x)

Determina se o endereço IPv6 especificado é privado ou público.

√

×

ipv6_to_provider function

ipv6_to_provider(x)

Retorna o provedor de serviços de Internet (ISP) do endereço IPv6 especificado.

√

×

ipv6_to_province function

ipv6_to_province(x)

Retorna o nome em chinês da província do endereço IPv6 especificado.

√

×

ipv6_to_province_code function

ipv6_to_province_code(x)

Retorna o código de divisão administrativa da província do endereço IPv6 especificado.

√

×

Função ip_to_city

A função ip_to_city retorna a cidade de um endereço IPv4 especificado.

Sintaxe

  • Retorna o nome em chinês de uma cidade.

    ip_to_city(x)
  • Retorna o código de divisão administrativa de uma cidade.

    ip_to_city(x,'en')

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv4.

Tipo de valor de retorno

varchar

Exemplos

Este exemplo calcula o tempo médio de solicitação, o tempo máximo de solicitação e o ID da solicitação associado ao tempo máximo para cada cidade.

  • Instrução de consulta e análise

    * |
    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
  • A consulta retorna três 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); e Hegang (avg_request_time: 43.87, max_request_time: 80.0, requestId: i-01).

Função ip_to_city_geo

A função ip_to_city_geo retorna a longitude e a latitude da cidade de um endereço IPv4 especificado.

Sintaxe

ip_to_city_geo(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv4.

Tipo de valor de retorno

Uma string varchar no formato latitude,longitude.

Exemplos

Obtenha a longitude e a latitude de endereços IPv4 para mapear a distribuição de clientes.

  • Instrução de consulta

    * |
    SELECT
      count(*) AS PV,
      ip_to_city_geo(client_ip) AS geo
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • A consulta retorna duas linhas. A primeira linha tem um PV de 9113 e um valor geo de 39.9288,116.389 (Pequim). A segunda linha tem um PV de 5784 e um valor geo de 31.2222,121.458060 (Xangai).

Função ip_to_country

A função ip_to_country retorna o país ou região de um endereço IPv4 especificado.

Sintaxe

  • Retorna o nome do país ou região em chinês.

    ip_to_country(x)
  • Retorna o código do país ou região.

    ip_to_country(x,'en')

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv4.

Tipo de valor de retorno

varchar

Exemplos

Este exemplo calcula o tempo médio de solicitação, o tempo máximo de solicitação e o ID da solicitação correspondente ao tempo máximo para cada país ou região.

  • Instrução 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
  • Os resultados da consulta e análise mostram três registros: Hong Kong (China) (avg_request_time: 45.27, max_request_time: 80.0, requestId: i-02); Austrália (avg_request_time: 47.08, max_request_time: 80.0, requestId: i-01); e Índia (avg_request_time: 39.39, max_request_time: 77.0, requestId: i-01).

Uso na Transformação de Dados (novo editor)

A Transformação de Dados (novo editor) usa sintaxe SPL e chama funções IP por meio da instrução extend. A sintaxe DSL legada que combina e_set com v() não é mais suportada.

O exemplo a seguir analisa o país e a cidade de um campo IP:

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

Exemplo de resultado da análise: 203.0.113.1 → country: Estados Unidos, city: Richardson.

Função ip_to_country_code

A função ip_to_country_code retorna o código do país ou região de um determinado endereço IPv4.

Sintaxe

ip_to_country_code(x)

Parâmetros

Parâmetro

Descrição

x

O endereço IPv4.

Tipo de valor de retorno

varchar

Exemplos

A consulta a seguir calcula o tempo médio de solicitação, o tempo máximo de solicitação e o ID da solicitação associado ao tempo máximo de solicitação para cada país ou região.

  • 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
  • A consulta retorna duas linhas de resultados. Na primeira linha, avg_request_time é 45.012, max_request_time é 80.0, requestId é i-01 e country é MO. Na segunda linha, avg_request_time é 46.286, max_request_time é 77.0, requestId é i-02 e country é GB.

Função ip_to_domain

A função ip_to_domain determina se um endereço IPv4 é privado ou público.

Sintaxe

ip_to_domain(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv4.

Tipo de valor de retorno

Retorna uma string varchar com um dos seguintes valores:

  • 'intranet': indica um endereço privado.

  • 'internet': indica um endereço público.

Exemplos

Conte o número de solicitações que não se originam de uma rede privada.

  • Instrução de consulta

    * |
    SELECT
      count(*) AS PV
    where
      ip_to_domain(client_ip) != 'intranet'
  • Resultados da consulta e análise: A contagem de PV é 941786.

Função ip_to_geo

A função ip_to_geo retorna a latitude e a longitude de um endereço IPv4 especificado. Para obter mais informações sobre funções geográficas, consulte Geo functions.

Sintaxe

ip_to_geo(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv4.

Tipo de valor de retorno

Uma string varchar no formato latitude,longitude.

Exemplos

Este exemplo recupera a latitude e a longitude de endereços IPv4 para identificar a distribuição de clientes.

  • Instrução de consulta

    * |
    SELECT
      count(*) AS PV,
      ip_to_geo(client_ip) AS geo
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • Os resultados da consulta e análise contêm dois registros de exemplo: um com PV de 5122 e geo de 39.1423,117.173, e outro com PV de 4960 e geo de 29.5569,106.553.

Função ip_to_provider

A função ip_to_provider retorna o ISP de um endereço IPv4.

Sintaxe

ip_to_provider(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv4.

Tipo de valor de retorno

Uma string varchar.

Exemplos

Calcule o tempo médio de solicitação por ISP.

  • Instrução 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
  • A consulta retorna três linhas. Os valores de avg_request_time são 18.0, 25.0 e 26.0, com os valores de provider correspondentes sendo Reliance Communications, CAT e Wangsu.

Função ip_to_province

A função ip_to_province retorna a estado de um determinado endereço IPv4.

Sintaxe

  • Retorna o nome em chinês da estado.

    ip_to_province(x)
  • Retorna o nome em inglês da estado.

    ip_to_province(x,'en')

Parâmetros

Parâmetro

Descrição

x

O endereço IPv4 a ser consultado.

Tipo de valor de retorno

VARCHAR

Exemplos

Calcule as 10 principais estados pelo total de solicitações.

  • Instrução de consulta

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

    Para filtrar solicitações de intranet dos resultados, use a seguinte instrução 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 da consulta: A execução da primeira instrução de consulta retorna uma tabela com as colunas PV e province. Os resultados são classificados por PV em ordem decrescente. Nos resultados de exemplo, a província de Guangdong ocupa o primeiro lugar com um PV de 368. Se um endereço IP não puder ser resolvido para uma província, o valor na coluna province estará vazio.

Função ip_prefix

A função ip_prefix retorna o prefixo de sub-rede de um determinado endereço IPv4 na notação CIDR, como 192.168.1.0/24.

Sintaxe

ip_prefix(x, prefix_bits)

Parâmetros

Parâmetro

Descrição

x

O endereço IPv4.

prefix_bits

O comprimento do prefixo.

Tipo de valor de retorno

varchar

Exemplos

Obtenha o prefixo de sub-rede dos endereços IP no campo client_ip.

  • Instrução de consulta

    * | SELECT ip_prefix(client_ip,24) AS client_ip
  • A consulta retorna uma coluna client_ip contendo prefixos de sub-rede /24, como xx.xx.xx.0/24.

is_prefix_subnet_of

A função is_prefix_subnet_of verifica se um bloco CIDR IPv4 é sub-rede de outro.

Sintaxe

is_prefix_subnet_of(x, y)

Parâmetros

Parâmetro

Descrição

x

O bloco CIDR IPv4 pai.

y

O bloco CIDR IPv4 a ser testado como possível sub-rede.

Tipo de valor de retorno

Retorna um valor booleano: true se y for uma sub-rede de x, e false caso contrário.

Exemplos

Este exemplo verifica se o bloco CIDR derivado do campo client_ip é uma sub-rede de 192.168.0.1/24.

  • Instrução de consulta

    * | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24'))
  • Os resultados da consulta e análise contêm uma coluna _col0 com duas linhas, ambas com o valor false. Um valor false indica que o client_ip do log correspondente não está na sub-rede 192.168.0.1/24.

Função is_subnet_of

A função is_subnet_of determina se um endereço IPv4 está dentro de um bloco CIDR.

Sintaxe

is_subnet_of(x, y)

Parâmetros

Parâmetro

Descrição

x

O bloco CIDR IPv4.

y

O endereço IPv4.

Tipo de valor de retorno

Boolean

Exemplos

Verifique se o valor do campo client_ip está no bloco CIDR 192.168.0.1/24.

  • Instrução de consulta

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

Função ip_subnet_min

A função ip_subnet_min retorna o menor endereço IP em um bloco CIDR IPv4.

Sintaxe

ip_subnet_min(x)

Parâmetros

Parâmetro

Descrição

x

Um bloco CIDR IPv4.

Tipo de valor de retorno

varchar

Exemplos

Este exemplo retorna o menor endereço IP no bloco CIDR que contém o endereço IP do campo client_ip.

  • Instrução de consulta

    * | SELECT ip_subnet_min(concat(client_ip,'/24'))
  • A consulta retorna uma única linha com uma coluna chamada _col0. Esta coluna mostra o menor endereço IP no bloco CIDR /24 que contém o client_ip. Parte do conteúdo está mascarada.

Função ip_subnet_max

A função ip_subnet_max retorna o maior endereço IP em um bloco CIDR IPv4.

Sintaxe

ip_subnet_max(x)

Parâmetros

Parâmetro

Descrição

x

Um bloco CIDR IPv4.

Tipo de valor de retorno

varchar

Exemplos

Calcula o maior endereço IP da sub-rede /24 para o endereço IP no campo client_ip.

  • Instrução de consulta e análise

    * | SELECT ip_subnet_max(concat(client_ip,'/24'))
  • A coluna _col0 exibe o resultado da função ip_subnet_max: o maior endereço IP da sub-rede /24. Parte do conteúdo foi ocultada.

ip_subnet_range

A função ip_subnet_range retorna os endereços inicial e final de um bloco CIDR IPv4.

Sintaxe

ip_subnet_range(x)

Parâmetros

Parâmetro

Descrição

x

Um bloco CIDR IPv4.

Tipo de valor de retorno

Um array JSON.

Exemplos

Recupere o intervalo de endereços do bloco CIDR IPv4 que contém o endereço IP no campo client_ip.

  • Instrução de consulta e análise

    * | SELECT ip_subnet_range(concat(client_ip,'/24'))
  • Os resultados da consulta e análise contêm a coluna _col0. Esta coluna contém um array JSON, como ["xxx.xxx.xxx.0","xxx.xxx.xxx.255"], que representa os endereços inicial e final do bloco CIDR IPv4.

ipv6_to_city

A função ipv6_to_city retorna a cidade de um endereço IPv6 especificado.

Sintaxe

ipv6_to_city(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

varchar

Exemplos

Conte solicitações por cidade.

  • Instrução de consulta e análise

    * |
    SELECT
      ipv6_to_city(ipv6Address) AS city,
      count(*) AS count
    GROUP BY
      city
  • Os resultados da consulta e análise listam cada cidade e sua contagem de registros, como Anyang (18), Baoding (42), Baoshan (3) e Binzhou (9).

ipv6_to_city_code

A função ipv6_to_city_code retorna o código de divisão administrativa de uma cidade para um endereço IPv6 especificado.

Sintaxe

ipv6_to_city_code(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

varchar

Exemplos

Este exemplo recupera o código de divisão administrativa de uma cidade para um endereço IPv6.

  • Instrução de consulta

    * |
    SELECT
      ipv6Address,
      ipv6_to_city_code(ipv6Address) AS cityCode
    WHERE
      cityCode <> ''
  • Resultados da consulta e análise: A função ipv6_to_city_code converte o endereço IPv6, retornando um cityCode de 350100.

ipv6_to_city_geo

A função ipv6_to_city_geo retorna a longitude e latitude de um endereço IPv6.

Sintaxe

ipv6_to_city_geo(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

A função retorna uma string varchar no formato longitude,latitude.

Exemplos

Este exemplo mostra como obter a longitude e latitude de endereços IPv6 para analisar a distribuição de clientes.

  • Instrução de consulta

    * |
    SELECT
      ipv6_to_city_geo(ipv6Address) AS geo,
      count(*) AS PV
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • A consulta retorna as colunas geo e PV. Resultados de exemplo, apresentados como pares (geo, PV), incluem: (133.397995,-24.9121, 6270), (10.45415,51.164181, 3813), (-2.23001,54.314072, 2055) e (121.5654268,25.0329636, 1893).

Função ipv6_to_country

A função ipv6_to_country identifica o país ou região de um endereço IPv6 especificado.

Sintaxe

ipv6_to_country(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

varchar

Exemplos

Calcule os 10 principais países ou regiões pelo número total de solicitações.

  • Instrução de consulta

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_country(ipv6Address) AS country
    WHERE
      country <> ''
    GROUP BY
      country
    ORDER BY
      PV DESC
    LIMIT
      10
  • Resultados da consulta e análise: A consulta retorna 10 registros. Por exemplo: Alemanha (3813), Taiwan (2337), Reino Unido (2055), Suécia (1119), Países Baixos (1014), Estados Unidos (942), Rússia (930) e Malásia (867)...

ipv6_to_country_code

A função ipv6_to_country_code retorna o código do país ou região de um endereço IPv6.

Sintaxe

ipv6_to_country_code(x)

Parâmetros

Parâmetro

Descrição

x

O endereço IPv6.

Tipo de valor de retorno

Retorna um valor varchar.

Exemplos

Este exemplo obtém o código do país ou região de um endereço IPv6.

  • Instrução de consulta

    * |
    SELECT
      ipv6Address,
      ipv6_to_country_code(ipv6Address) AS code
    WHERE
      cityCode <> ''
  • Nos resultados da consulta, a função ipv6_to_country_code resolve um endereço IPv6 para seu código de país, por exemplo, CN para um endereço na China.

Função ipv6_to_domain

A função ipv6_to_domain classifica um endereço IPv6 como privado ou público.

Sintaxe

ipv6_to_domain(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

varchar. A função retorna um dos seguintes valores:

  • intranet: Um endereço privado.

  • internet: Um endereço público.

Exemplos

Este exemplo conta solicitações de redes privadas e redes públicas.

  • Instrução de consulta e análise

    * |
    SELECT
      ipv6_to_domain(ipv6Address) AS domain,
      count(*) AS count
    GROUP BY
      domain
  • A consulta retorna uma tabela com duas colunas: domain e count. Neste exemplo, a contagem para intranet é 9 e para internet é 38.067.

Função ipv6_to_provider

A função ipv6_to_provider retorna o ISP de um endereço IPv6 especificado.

Sintaxe

ipv6_to_provider(x)

Parâmetros

Parâmetro

Descrição

x

O endereço IPv6.

Tipo de valor de retorno

varchar

Exemplos

Este exemplo encontra os 10 principais ISPs pelo total de solicitações.

  • Instrução de consulta e análise

    * |
    SELECT
      ipv6_to_provider(ipv6Address) AS provider,
      count(*) AS count
    GROUP BY
      provider
    ORDER BY
      count DESC
    LIMIT
      10
  • Resultados da consulta e análise: A consulta retorna uma lista de ISPs classificados por contagem de solicitações em ordem decrescente. Os 10 principais resultados incluem entradas como edu.tw (2235), colt.net (1512), maxis.com.my (780), citictel-cpc.com (453), CSTNET (348), ntt.com (261), att.com (258) e libertyglobal.com (174).

Função ipv6_to_province

A função ipv6_to_province retorna a província de um endereço IPv6.

Sintaxe

ipv6_to_province(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

varchar

Exemplos

Este exemplo encontra as 10 principais províncias pelo número total de solicitações.

  • Instrução de consulta e análise

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_province(ipv6Address) AS province
    WHERE
      province <> ''
    GROUP BY
      province
    ORDER BY
      PV DESC
    LIMIT
      10
  • Resultados da consulta e análise: A consulta retorna as colunas PV e province, classificadas por PV em ordem decrescente. Resultados de exemplo incluem Jiangsu (564), Guangdong (558), Território Federal de Kuala Lumpur (555), Shandong (507), Henan (435), Sichuan (354), Zhejiang (336) e Anhui (312).

Função ipv6_to_province_code

A função ipv6_to_province_code retorna o código de divisão administrativa de uma província para um endereço IPv6 especificado.

Sintaxe

ipv6_to_province_code(x)

Parâmetros

Parâmetro

Descrição

x

Um endereço IPv6.

Tipo de valor de retorno

varchar

Exemplos

Recupere o código de divisão administrativa da província associada a um endereço IPv6.

  • Instrução de consulta

    * |
    SELECT
      ipv6Address,
      ipv6_to_province_code(ipv6Address) AS code
    WHERE
      cityCode <> ''
  • Resultados da consulta: A coluna ipv6Address lista vários endereços IPv6 ocultados, enquanto a coluna code mostra seu código de província correspondente: 350000.