Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções para trabalhar com endereços IPv4 e IPv6

IPv4CIDRToRange

Introduzido em: v20.1.0

Recebe um endereço IPv4 com o comprimento do prefixo CIDR (Classless Inter-Domain Routing) e retorna o intervalo de endereços da sub-rede como uma tupla com dois valores IPv4: o primeiro e o último endereço dessa sub-rede. Para a versão IPv6, consulte IPv6CIDRToRange.

Sintaxe

IPv4CIDRToRange(ipv4, cidr)

Argumentos

Valor retornado

Retorna uma tupla com dois endereços IPv4 que representam o intervalo da sub-rede. Tuple(IPv4, IPv4)

Exemplos

Exemplo de uso

SELECT IPv4CIDRToRange(toIPv4('192.168.5.2'), 16);
┌─IPv4CIDRToRange(toIPv4('192.168.5.2'), 16)─┐
│ ('192.168.0.0','192.168.255.255')          │
└────────────────────────────────────────────┘

IPv4NumToString

Introduzido em: v1.1.0

Converte um inteiro de 32 bits em sua representação textual de endereço IPv4 na notação decimal pontuada (formato A.B.C.D). Interpreta a entrada usando a ordem de bytes big-endian.

Sintaxe

IPv4NumToString(num)

Aliases: INET_NTOA

Argumentos

  • num — endereço IPv4 como um número UInt32. UInt32

Valor retornado

Retorna um número que representa o endereço MAC ou 0 se o formato for inválido. String

Exemplos

Exemplo de uso

SELECT IPv4NumToString(3232235521)
192.168.0.1

IPv4NumToStringClassC

Introduzido em: v1.1.0

Converte um inteiro de 32 bits em sua representação textual de endereço IPv4 na notação decimal pontuada (formato A.B.C.D), semelhante a IPv4NumToString, mas usando xxx em vez do último octeto.

Sintaxe

IPv4NumToStringClassC(num)

Argumentos

  • num — endereço IPv4 como um número UInt32. UInt32

Valor retornado

Retorna a string do endereço IPv4 com xxx substituindo o último octeto. String

Exemplos

Exemplo básico com agregação

SELECT
    IPv4NumToStringClassC(ClientIP) AS k,
    count() AS c
FROM VALUES('ClientIP UInt32',
    (toUInt32(toIPv4('83.149.9.10'))), (toUInt32(toIPv4('83.149.9.11'))), (toUInt32(toIPv4('83.149.9.12'))),
    (toUInt32(toIPv4('217.118.81.5'))), (toUInt32(toIPv4('217.118.81.6'))),
    (toUInt32(toIPv4('213.87.129.1'))))
GROUP BY k
ORDER BY c DESC, k
┌─k──────────────┬─c─┐
│ 83.149.9.xxx   │ 3 │
│ 217.118.81.xxx │ 2 │
│ 213.87.129.xxx │ 1 │
└────────────────┴───┘

IPv4StringToNum

Introduzido em: v1.1.0

Converte uma string com um endereço IPv4 em notação decimal pontuada (formato A.B.C.D) para sua representação correspondente como um inteiro de 32 bits. (O inverso de IPv4NumToString). Se o endereço IPv4 tiver um formato inválido, uma exceção será lançada.

Sintaxe

IPv4StringToNum(string)

Aliases: INET_ATON

Argumentos

  • string — Endereço IPv4 em formato de string. String

Valor retornado

Retorna o endereço IPv4. UInt32

Exemplos

Exemplo de uso

SELECT IPv4StringToNum('192.168.0.1')
3232235521

IPv4StringToNumOrDefault

Introduzido em: v22.3.0

Converte uma string com um endereço IPv4 em notação decimal pontuada (formato A.B.C.D) na representação inteira correspondente de 32 bits; porém, se o endereço IPv4 tiver um formato inválido, retorna 0.

Sintaxe

IPv4StringToNumOrDefault(string)

Argumentos

  • string — Endereço IPv4 em formato de string. String

Valor retornado

Retorna o endereço IPv4 ou 0 se ele for inválido. UInt32

Exemplos

Exemplo com endereço inválido

SELECT
    IPv4StringToNumOrDefault('127.0.0.1') AS valid,
    IPv4StringToNumOrDefault('invalid') AS invalid;
┌──────valid─┬─invalid─┐
│ 2130706433 │       0 │
└────────────┴─────────┘

IPv4StringToNumOrNull

Introduzido em: v22.3.0

Converte um inteiro de 32 bits em sua representação textual de endereço IPv4 na notação decimal pontuada (formato A.B.C.D), mas, se o endereço IPv4 tiver um formato inválido, retorna NULL.

Sintaxe

IPv4StringToNumOrNull(string)

Argumentos

  • string — Endereço IPv4 em formato de string. String

Valor retornado

Retorna o endereço IPv4 ou NULL se ele for inválido. Nullable(UInt32)

Exemplos

Exemplo com endereço inválido

SELECT
IPv4StringToNumOrNull('127.0.0.1') AS valid,
IPv4StringToNumOrNull('invalid') AS invalid;
┌──────valid─┬─invalid─┐
│ 2130706433 │    ᴺᵁᴸᴸ │
└────────────┴─────────┘

IPv4ToIPv6

Introduzido em: v1.1.0

Interpreta um número de 32 bits (big-endian) como um endereço IPv4, que depois é interpretado como o endereço IPv6 correspondente no formato FixedString(16).

Sintaxe

IPv4ToIPv6(x)

Argumentos

  • x — Endereço IPv4. UInt32

Valor retornado

Retorna um endereço IPv6 em formato binário. FixedString(16)

Exemplos

Exemplo de uso

SELECT IPv6NumToString(IPv4ToIPv6(IPv4StringToNum('192.168.0.1'))) AS addr;
┌─addr───────────────┐
│ ::ffff:192.168.0.1 │
└────────────────────┘

IPv6CIDRToRange

Introduzido em: v20.1.0

Recebe um endereço IPv6 e o comprimento do prefixo CIDR (Classless Inter-Domain Routing) e retorna o intervalo de endereços da sub-rede como uma tupla de dois valores IPv6: o menor e o maior endereço dessa sub-rede. Para a versão IPv4, consulte IPv4CIDRToRange.

Sintaxe

IPv6CIDRToRange(ipv6, cidr)

Argumentos

Valor retornado

Retorna uma tupla com dois endereços IPv6 que representam o intervalo da sub-rede. Tuple(IPv6, IPv6)

Exemplos

Exemplo de uso

SELECT IPv6CIDRToRange(toIPv6('2001:0db8:0000:85a3:0000:0000:ac1f:8001'), 32);
┌─IPv6CIDRToRange(toIPv6('2001:0db8:0000:85a3:0000:0000:ac1f:8001'), 32)─┐
│ ('2001:db8::','2001:db8:ffff:ffff:ffff:ffff:ffff:ffff')                │
└────────────────────────────────────────────────────────────────────────┘

IPv6NumToString

Introduzido em: v1.1.0

Converte um endereço IPv6 do formato binário (FixedString(16)) para sua representação padrão em texto. Endereços IPv6 mapeados para IPv4 são exibidos no formato ::ffff:111.222.33.44.

Sintaxe

IPv6NumToString(x)

Aliases: INET6_NTOA

Argumentos

Valor retornado

Retorna o endereço IPv6 em formato de texto. String

Exemplos

Exemplo de uso

SELECT IPv6NumToString(toFixedString(unhex('2A0206B8000000000000000000000011'), 16)) AS addr;
┌─addr─────────┐
│ 2a02:6b8::11 │
└──────────────┘

Análise de IPv6 com a tabela hits

CREATE TABLE hits_all (EventDate Date, ClientIP6 FixedString(16)) ENGINE = Memory;

INSERT INTO hits_all SELECT today(), IPv6StringToNum(addr) FROM VALUES('addr String',
    ('2a02:2168:aaa:bbbb::2'), ('2a02:2168:aaa:bbbb::2'), ('2a02:2168:aaa:bbbb::2'),
    ('2a02:6b8:0:fff::ff'), ('2a02:6b8:0:fff::ff'),
    ('::ffff:94.26.111.111'), ('::ffff:94.26.111.111'), ('::ffff:94.26.111.111'), ('::ffff:94.26.111.111'),
    ('::ffff:37.143.222.4'));

-- The addresses that are not an IPv4 address mapped into the IPv6 space.
SELECT
    IPv6NumToString(ClientIP6 AS k),
    count() AS c
FROM hits_all
WHERE EventDate = today() AND substring(ClientIP6, 1, 12) != unhex('00000000000000000000FFFF')
GROUP BY k
ORDER BY c DESC, k
LIMIT 10
┌─IPv6NumToString(k)────┬─c─┐
│ 2a02:2168:aaa:bbbb::2 │ 3 │
│ 2a02:6b8:0:fff::ff    │ 2 │
└───────────────────────┴───┘

Endereços IPv4 mapeados em IPv6

-- Without the filter, the mapped IPv4 addresses show up as well.
SELECT
    IPv6NumToString(ClientIP6 AS k),
    count() AS c
FROM hits_all
WHERE EventDate = today()
GROUP BY k
ORDER BY c DESC, k
LIMIT 10
┌─IPv6NumToString(k)────┬─c─┐
│ ::ffff:94.26.111.111  │ 4 │
│ 2a02:2168:aaa:bbbb::2 │ 3 │
│ 2a02:6b8:0:fff::ff    │ 2 │
│ ::ffff:37.143.222.4   │ 1 │
└───────────────────────┴───┘

IPv6StringToNum

Introduzido em: v1.1.0

Converte um endereço IPv6 da sua representação textual padrão para o formato binário (FixedString(16)). Aceita endereços IPv6 mapeado para IPv4 no formato ::ffff:111.222.33.44.. Se o endereço IPv6 tiver um formato inválido, uma exceção será lançada.

Se a string de entrada contiver um endereço IPv4 válido, retornará seu equivalente em IPv6. HEX pode estar em letras maiúsculas ou minúsculas.

Sintaxe

IPv6StringToNum(string)

Aliases: INET6_ATON

Argumentos

  • string — Endereço IPv6 em formato de string. String

Valor retornado

Retorna o endereço IPv6 em formato binário. FixedString(16)

Exemplos

Exemplo básico

SELECT addr, cutIPv6(IPv6StringToNum(addr), 0, 0) FROM (SELECT ['127.0.0.1', '1111::ffff'] AS addr) ARRAY JOIN addr;
┌─addr───────┬─cutIPv6(IPv6StringToNum(addr), 0, 0)─┐
│ 127.0.0.1  │ ::ffff:127.0.0.1                     │
│ 1111::ffff │ 1111::ffff                           │
└────────────┴──────────────────────────────────────┘

IPv6StringToNumOrDefault

Introduzido na versão: v22.3.0

Converte um endereço IPv6 de sua representação textual padrão para o formato binário (FixedString(16)). Aceita endereços IPv6 mapeado para IPv4 no formato ::ffff:111.222.33.44.. Se o endereço IPv6 tiver um formato inválido, retorna o valor padrão ::.

Sintaxe

IPv6StringToNumOrDefault(string)

Argumentos

  • string — Endereço IPv6 em formato de string. String

Valor retornado

Endereço IPv6 em formato binário ou FixedString(16) preenchido com zeros se for inválido. FixedString(16)

Exemplos

Exemplo básico com endereço inválido

SELECT
    IPv6NumToString(IPv6StringToNumOrDefault('2001:db8::1')) AS valid,
    IPv6NumToString(IPv6StringToNumOrDefault('invalid')) AS invalid;
┌─valid───────┬─invalid─┐
│ 2001:db8::1 │ ::      │
└─────────────┴─────────┘

IPv6StringToNumOrNull

Introduzido em: v22.3.0

Converte um endereço IPv6 da sua representação textual padrão para o formato binário (FixedString(16)). Aceita endereços IPv6 mapeados para IPv4 no formato ::ffff:111.222.33.44.. Se o endereço IPv6 tiver um formato inválido, retorna NULL.

Sintaxe

IPv6StringToNumOrNull(string)

Argumentos

  • string — Endereço IPv6 em formato de string. String

Valor retornado

Retorna o endereço IPv6 em formato binário ou NULL se for inválido. Nullable(FixedString(16))

Exemplos

Exemplo básico com endereço inválido

SELECT
    IPv6NumToString(IPv6StringToNumOrNull('2001:db8::1')) AS valid,
    IPv6StringToNumOrNull('invalid') AS invalid;
┌─valid───────┬─invalid─┐
│ 2001:db8::1 │ ᴺᵁᴸᴸ    │
└─────────────┴─────────┘

cutIPv6

Introduzido em: v1.1.0

Aceita um valor FixedString(16) que contém o endereço IPv6 em formato binário. Retorna uma string contendo o endereço com a quantidade especificada de bytes removidos, em formato de texto.

Sintaxe

cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)

Argumentos

  • x — Endereço IPv6 em formato binário. FixedString(16) ou IPv6
  • bytesToCutForIPv6 — Número de bytes a remover para IPv6. UInt8
  • bytesToCutForIPv4 — Número de bytes a remover para IPv4. UInt8

Valor retornado

Retorna uma string que contém o endereço IPv6 em formato de texto com os bytes especificados removidos. String

Exemplos

Exemplo de uso

WITH
    IPv6StringToNum('2001:0DB8:AC10:FE01:FEED:BABE:CAFE:F00D') AS ipv6,
    IPv4ToIPv6(IPv4StringToNum('192.168.0.1')) AS ipv4
SELECT
    cutIPv6(ipv6, 2, 0),
    cutIPv6(ipv4, 0, 2)
┌─cutIPv6(ipv6, 2, 0)─────────────────┬─cutIPv6(ipv4, 0, 2)─┐
│ 2001:db8:ac10:fe01:feed:babe:cafe:0 │ ::ffff:192.168.0.0  │
└─────────────────────────────────────┴─────────────────────┘

isIPAddressInRange

Introduzido na versão: v21.4.0

Determina se um endereço IP está contido em uma rede representada na notação Classless Inter-Domain Routing (CIDR).

Esta função aceita endereços IPv4 e IPv6 (e redes) representados como strings. Ela retorna 0 se a versão de IP do endereço e a do CIDR não corresponderem.

Sintaxe

isIPAddressInRange(address, prefix)

Argumentos

  • address — Um endereço IPv4 ou IPv6. String
  • prefix — Um prefixo de rede IPv4 ou IPv6 em CIDR. String

Valor retornado

Retorna 1 se a versão IP do endereço corresponder à do CIDR; caso contrário, 0. UInt8

Exemplos

Endereço IPv4 no intervalo

SELECT isIPAddressInRange('127.0.0.1', '127.0.0.0/8')
1

Endereço IPv4 fora do intervalo

SELECT isIPAddressInRange('127.0.0.1', 'ffff::/16')
0

Endereço IPv6 fora da faixa

SELECT isIPAddressInRange('::ffff:192.168.0.1', '::ffff:192.168.0.4/128')
0

isIPv4String

Introduzido na versão: v21.1.0

Determina se a string de entrada é ou não um endereço IPv4. Para a versão IPv6, consulte isIPv6String.

Sintaxe

isIPv4String(string)

Argumentos

  • string — texto com o endereço IP a ser verificado. String

Valor retornado

Retorna 1 se string for um endereço IPv4; caso contrário, 0. UInt8

Exemplos

Exemplo de uso

SELECT addr, isIPv4String(addr)
FROM(
SELECT ['0.0.0.0', '127.0.0.1', '::ffff:127.0.0.1'] AS addr
)
ARRAY JOIN addr;
┌─addr─────────────┬─isIPv4String(addr)─┐
│ 0.0.0.0          │                  1 │
│ 127.0.0.1        │                  1 │
│ ::ffff:127.0.0.1 │                  0 │
└──────────────────┴────────────────────┘

isIPv6String

Introduzido em: v21.1.0

Determina se a string de entrada é um endereço IPv6. Para a versão IPv4, consulte isIPv4String.

Sintaxe

isIPv6String(string)

Argumentos

  • string — String com o endereço IP a ser verificado. String

Valor retornado

Retorna 1 se string for um endereço IPv6; caso contrário, 0. UInt8

Exemplos

Exemplo de uso

SELECT addr, isIPv6String(addr)
FROM(SELECT ['::', '1111::ffff', '::ffff:127.0.0.1', '127.0.0.1'] AS addr)
ARRAY JOIN addr;
┌─addr─────────────┬─isIPv6String(addr)─┐
│ ::               │                  1 │
│ 1111::ffff       │                  1 │
│ ::ffff:127.0.0.1 │                  1 │
│ 127.0.0.1        │                  0 │
└──────────────────┴────────────────────┘

toIPv4

Introduzido em: v20.1.0

Converte uma string ou um endereço IPv4 na forma UInt32 para o tipo IPv4. É semelhante às funções IPv4StringToNum e IPv4NumToString, mas aceita como argumentos de entrada tanto tipos de dados string quanto inteiros sem sinal.

Sintaxe

toIPv4(x)

Argumentos

Valor retornado

Retorna um endereço IPv4. IPv4

Exemplos

Exemplo de uso

SELECT toIPv4('171.225.130.45');
┌─toIPv4('171.225.130.45')─┐
│ 171.225.130.45           │
└──────────────────────────┘

Comparação com as funções IPv4StringToNum e IPv4NumToString.

WITH
    '171.225.130.45' AS IPv4_string
SELECT
    hex(IPv4StringToNum(IPv4_string)),
    hex(toIPv4(IPv4_string))
┌─hex(IPv4StringToNum(IPv4_string))─┬─hex(toIPv4(IPv4_string))─┐
│ ABE1822D                          │ ABE1822D                 │
└───────────────────────────────────┴──────────────────────────┘

Conversão a partir de um inteiro

SELECT toIPv4(2130706433);
┌─toIPv4(2130706433)─┐
│ 127.0.0.1          │
└────────────────────┘

toIPv4OrDefault

Introduzido em: v22.3.0

Converte uma string ou um valor UInt32 de um endereço IPv4 para o tipo IPv4. Se o endereço IPv4 tiver um formato inválido, retorna 0.0.0.0 (IPv4 0) ou o valor IPv4 padrão fornecido.

Sintaxe

toIPv4OrDefault(string[, default])

Argumentos

  • string — String com o endereço IP a ser convertido. String
  • default — Opcional. O valor a ser retornado se string for um endereço IPv4 inválido. IPv4

Valor retornado

Retorna o endereço IPv4 correspondente à string, ou o valor padrão se a conversão falhar. IPv4

Exemplos

Strings IPv4 válidas e inválidas

WITH
    '192.168.1.1' AS valid_IPv4_string,
    '999.999.999.999' AS invalid_IPv4_string,
    'not_an_ip' AS malformed_string
SELECT
    toIPv4OrDefault(valid_IPv4_string) AS valid,
    toIPv4OrDefault(invalid_IPv4_string) AS default_value,
    toIPv4OrDefault(malformed_string, toIPv4('8.8.8.8')) AS provided_default;
┌─valid───────┬─default_value─┬─provided_default─┐
│ 192.168.1.1 │ 0.0.0.0       │ 8.8.8.8          │
└─────────────┴───────────────┴──────────────────┘

toIPv4OrNull

Introduzido em: v22.3.0

Converte um valor de entrada em um valor do tipo IPv4, mas retorna NULL em caso de erro. Como toIPv4, mas retorna NULL em vez de lançar uma exceção em caso de erro de conversão.

Argumentos suportados:

  • Representações em string de endereços IPv4 na notação decimal pontuada.
  • Representações inteiras de endereços IPv4.

Argumentos não suportados (retornam NULL):

  • Formatos de endereço IP inválidos.
  • Endereços IPv6.
  • Valores fora do intervalo.
  • Endereços malformados.

Sintaxe

toIPv4OrNull(x)

Argumentos

  • x — Uma representação de um endereço IPv4 em formato de string ou inteiro. String ou Integer

Valor retornado

Retorna um endereço IPv4 em caso de sucesso; caso contrário, NULL. IPv4 ou NULL

Exemplos

Exemplo de uso

SELECT
    toIPv4OrNull('192.168.1.1') AS valid_ip,
    toIPv4OrNull('invalid.ip') AS invalid_ip
┌─valid_ip────┬─invalid_ip─┐
│ 192.168.1.1 │ ᴺᵁᴸᴸ       │
└─────────────┴────────────┘

toIPv4OrZero

Introduzido em: v23.1.0

Converte um valor de entrada em um valor do tipo IPv4, mas retorna o endereço IPv4 zero em caso de erro. Semelhante a toIPv4, mas retorna o endereço IPv4 zero (0.0.0.0) em vez de lançar uma exceção em caso de erro de conversão.

Argumentos compatíveis:

  • Representações de endereços IPv4 em formato String na notação decimal pontuada.
  • Representações inteiras de endereços IPv4.

Argumentos não compatíveis (retornam IPv4 zero):

  • Formatos de endereço IP inválidos.
  • Endereços IPv6.
  • Valores fora do intervalo.

Sintaxe

toIPv4OrZero(x)

Argumentos

  • x — Uma representação de um endereço IPv4 em string ou inteiro. String ou Integer

Valor retornado

Retorna um endereço IPv4 em caso de sucesso; caso contrário, retorna o endereço IPv4 zero (0.0.0.0). IPv4

Exemplos

Exemplo de uso

SELECT
    toIPv4OrZero('192.168.1.1') AS valid_ip,
    toIPv4OrZero('invalid.ip') AS invalid_ip
┌─valid_ip────┬─invalid_ip─┐
│ 192.168.1.1 │ 0.0.0.0    │
└─────────────┴────────────┘

toIPv6

Introduzido em: v20.1.0

Converte uma string ou um endereço IPv6 na forma UInt128 para o tipo IPv6. No caso de strings, se o endereço IPv6 tiver um formato inválido, retorna um valor vazio. Semelhante às funções IPv6StringToNum e IPv6NumToString, que convertem endereços IPv6 de e para o formato binário (ou seja, FixedString(16)).

Se a string de entrada contiver um endereço IPv4 válido, o equivalente em IPv6 desse endereço IPv4 será retornado.

Sintaxe

toIPv6(x)

Argumentos

Valor retornado

Retorna um endereço IPv6. IPv6

Exemplos

Exemplo de uso

WITH '2001:438:ffff::407d:1bc1' AS IPv6_string
SELECT
    hex(IPv6StringToNum(IPv6_string)),
    hex(toIPv6(IPv6_string));
┌─hex(IPv6StringToNum(IPv6_string))─┬─hex(toIPv6(IPv6_string))─────────┐
│ 20010438FFFF000000000000407D1BC1  │ 20010438FFFF000000000000407D1BC1 │
└───────────────────────────────────┴──────────────────────────────────┘

Mapeamento de IPv4 para IPv6

SELECT toIPv6('127.0.0.1');
┌─toIPv6('127.0.0.1')─┐
│ ::ffff:127.0.0.1    │
└─────────────────────┘

toIPv6OrDefault

Introduzido em: v22.3.0

Converte uma string ou um endereço IPv6 no formato UInt128 para o tipo IPv6. Se o endereço IPv6 tiver um formato inválido, retorna :: (IPv6 0) ou o valor padrão de IPv6 fornecido.

Sintaxe

toIPv6OrDefault(string[, default])

Argumentos

  • string — Endereço IP em formato de string a ser convertido. - default — Opcional. O valor a ser retornado se a string tiver um formato inválido.

Valor retornado

Retorna o endereço IPv6; caso contrário, :: ou o valor padrão opcional fornecido se o argumento string tiver um formato inválido. IPv6

Exemplos

Strings IPv6 válidas e inválidas

WITH
    '2001:0db8:85a3:0000:0000:8a2e:0370:7334' AS valid_IPv6_string,
    '2001:0db8:85a3::8a2e:370g:7334' AS invalid_IPv6_string,
    'not_an_ipv6' AS malformed_string
SELECT
    toIPv6OrDefault(valid_IPv6_string) AS valid,
    toIPv6OrDefault(invalid_IPv6_string) AS default_value,
    toIPv6OrDefault(malformed_string, toIPv6('::1')) AS provided_default;
┌─valid────────────────────────┬─default_value─┬─provided_default─┐
│ 2001:db8:85a3::8a2e:370:7334 │ ::            │ ::1              │
└──────────────────────────────┴───────────────┴──────────────────┘

toIPv6OrNull

Introduzido em: v22.3.0

Converte um valor de entrada em um valor do tipo IPv6, mas retorna NULL em caso de erro. Como toIPv6, mas retorna NULL em vez de lançar uma exceção em caso de erro de conversão.

Argumentos suportados:

  • Representações em string de endereços IPv6 na notação padrão.
  • Representações em string de endereços IPv4 (convertidos para IPv6 mapeado para IPv4).
  • Representações binárias de endereços IPv6.

Argumentos não suportados (retornam NULL):

  • Formatos de endereço IP inválidos.
  • Endereços IPv6 malformados.
  • Valores fora do intervalo.
  • Notação inválida.

Sintaxe

toIPv6OrNull(x)

Argumentos

  • x — Uma representação textual de um endereço IPv6 ou IPv4. String

Valor retornado

Retorna um endereço IPv6 em caso de sucesso; caso contrário, NULL. IPv6 ou NULL

Exemplos

Exemplo de uso

SELECT
    toIPv6OrNull('2001:0db8:85a3:0000:0000:8a2e:0370:7334') AS valid_ipv6,
    toIPv6OrNull('invalid::ip') AS invalid_ipv6
┌─valid_ipv6───────────────────┬─invalid_ipv6─┐
│ 2001:db8:85a3::8a2e:370:7334 │ ᴺᵁᴸᴸ         │
└──────────────────────────────┴──────────────┘

toIPv6OrZero

Introduzido em: v23.1.0

Converte um valor de entrada em um valor do tipo IPv6, mas retorna o endereço IPv6 zero em caso de erro. Como toIPv6, mas retorna o endereço IPv6 zero (::) em vez de lançar uma exceção em caso de erro de conversão.

Argumentos suportados:

  • Representações em string de endereços IPv6 na notação padrão.
  • Representações em string de endereços IPv4 (convertidos em IPv6 mapeado para IPv4).
  • Representações binárias de endereços IPv6.

Argumentos não suportados (retornam IPv6 zero):

  • Formatos de endereço IP inválidos.
  • Endereços IPv6 malformados.
  • Valores fora do intervalo.

Sintaxe

toIPv6OrZero(x)

Argumentos

  • x — A representação em string de um endereço IPv6 ou IPv4. String

Valor retornado

Retorna um endereço IPv6 em caso de sucesso; caso contrário, retorna o endereço IPv6 zero (::). IPv6

Exemplos

Exemplo de uso

SELECT
    toIPv6OrZero('2001:0db8:85a3:0000:0000:8a2e:0370:7334') AS valid_ipv6,
    toIPv6OrZero('invalid::ip') AS invalid_ipv6
┌─valid_ipv6───────────────────┬─invalid_ipv6─┐
│ 2001:db8:85a3::8a2e:370:7334 │ ::           │
└──────────────────────────────┴──────────────┘
Navigation