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.1IPv4NumToStringClassC
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')3232235521IPv4StringToNumOrDefault
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
x— endereço IPv6 em formato binário.FixedString(16)ouIPv6
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)ouIPv6bytesToCutForIPv6— Número de bytes a remover para IPv6.UInt8bytesToCutForIPv4— 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
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')1Endereço IPv4 fora do intervalo
SELECT isIPAddressInRange('127.0.0.1', 'ffff::/16')0Endereço IPv6 fora da faixa
SELECT isIPAddressInRange('::ffff:192.168.0.1', '::ffff:192.168.0.4/128')0isIPv4String
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
x— Um endereço IPv4StringouUInt8/16/32
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.Stringdefault— Opcional. O valor a ser retornado sestringfor 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
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
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 │ :: │
└──────────────────────────────┴──────────────┘