Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funciones para trabajar con direcciones IPv4 e IPv6

IPv4CIDRToRange

Introducido en: v20.1.0

Toma una dirección IPv4 con la longitud de su prefijo de enrutamiento entre dominios sin clases (CIDR) y devuelve el rango de direcciones de la subred como una tupla de dos valores IPv4: la primera y la última dirección de esa subred. Para la versión IPv6, consulte IPv6CIDRToRange.

Sintaxis

IPv4CIDRToRange(ipv4, cidr)

Argumentos

Valor devuelto

Devuelve una tupla con dos direcciones IPv4 que representan el rango de la subred. Tuple(IPv4, IPv4)

Ejemplos

Ejemplo 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

Introducido en: v1.1.0

Convierte un entero de 32 bits en la representación textual de su dirección IPv4 en notación decimal con puntos (formato A.B.C.D). Interpreta la entrada usando el orden de bytes big-endian.

Sintaxis

IPv4NumToString(num)

Alias: INET_NTOA

Argumentos

  • num — dirección IPv4 como número UInt32. UInt32

Valor devuelto

Devuelve un número que representa la dirección MAC, o 0 si el formato no es válido. String

Ejemplos

Ejemplo de uso

SELECT IPv4NumToString(3232235521)
192.168.0.1

IPv4NumToStringClassC

Introducido en: v1.1.0

Convierte un entero de 32 bits en la representación en cadena de su dirección IPv4 en notación decimal con puntos (formato A.B.C.D), similar a IPv4NumToString, pero usa xxx en lugar del último octeto.

Sintaxis

IPv4NumToStringClassC(num)

Argumentos

  • num — Dirección IPv4 en forma de número UInt32. UInt32

Valor devuelto

Devuelve la cadena de dirección IPv4, con xxx en lugar del último octeto. String

Ejemplos

Ejemplo básico con agregación

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

Introducido en: v1.1.0

Convierte una cadena con una dirección IPv4 en notación decimal con puntos (formato A.B.C.D) en su correspondiente representación entera de 32 bits. (La operación inversa de IPv4NumToString). Si la dirección IPv4 tiene un formato no válido, se lanza una excepción.

Sintaxis

IPv4StringToNum(string)

Alias: INET_ATON

Argumentos

  • string — Cadena con la dirección IPv4. String

Valor devuelto

Devuelve la dirección IPv4. UInt32

Ejemplos

Ejemplo de uso

SELECT IPv4StringToNum('192.168.0.1')
3232235521

IPv4StringToNumOrDefault

Introducido en: v22.3.0

Convierte una cadena con una dirección IPv4 en notación decimal con puntos (formato A.B.C.D) en su correspondiente representación entera de 32 bits; si la dirección IPv4 tiene un formato no válido, devuelve 0.

Sintaxis

IPv4StringToNumOrDefault(string)

Argumentos

  • string — Cadena con una dirección IPv4. String

Valor devuelto

Devuelve la dirección IPv4 o 0 si no es válida. UInt32

Ejemplos

Ejemplo con una dirección no válida

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

IPv4StringToNumOrNull

Introducido en: v22.3.0

Convierte un entero de 32 bits en la representación de cadena de su dirección IPv4 en notación decimal con puntos (formato A.B.C.D), pero, si la dirección IPv4 tiene un formato no válido, devuelve NULL.

Sintaxis

IPv4StringToNumOrNull(string)

Argumentos

  • string — Cadena con una dirección IPv4. String

Valor devuelto

Devuelve la dirección IPv4, o NULL si no es válida. Nullable(UInt32)

Ejemplos

Ejemplo con una dirección no válida

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

IPv4ToIPv6

Introducido en: v1.1.0

Interpreta un número de 32 bits (big-endian) como una dirección IPv4, que luego se interpreta como la dirección IPv6 correspondiente en formato FixedString(16).

Sintaxis

IPv4ToIPv6(x)

Argumentos

  • x — dirección IPv4. UInt32

Valor devuelto

Devuelve una dirección IPv6 en formato binario. FixedString(16)

Ejemplos

Ejemplo de uso

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

IPv6CIDRToRange

Introducido en: v20.1.0

Toma una dirección IPv6 con la longitud de su prefijo de enrutamiento entre dominios sin clases (CIDR) y devuelve el rango de direcciones de la subred como una tupla de dos valores IPv6: la dirección más baja y la más alta de esa subred. Para la versión IPv4, consulte IPv4CIDRToRange.

Sintaxis

IPv6CIDRToRange(ipv6, cidr)

Argumentos

Valor devuelto

Devuelve una tupla con dos direcciones IPv6 que representan el rango de la subred. Tuple(IPv6, IPv6)

Ejemplos

Ejemplo 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

Introducido en: v1.1.0

Convierte una dirección IPv6 del formato binario (FixedString(16)) a su representación de texto estándar. Las direcciones IPv6 con mapeo de IPv4 se muestran con el formato ::ffff:111.222.33.44.

Sintaxis

IPv6NumToString(x)

Alias: INET6_NTOA

Argumentos

Valor devuelto

Devuelve la dirección IPv6 como cadena en formato de texto. String

Ejemplos

Ejemplo de uso

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

Análisis de hits con IPv6

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 │
└───────────────────────┴───┘

Direcciones IPv4 mapeadas en 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

Introducido en: v1.1.0

Convierte una dirección IPv6 de su representación textual estándar al formato binario (FixedString(16)). Acepta direcciones IPv6 con mapeo de IPv4 en el formato ::ffff:111.222.33.44.. Si la dirección IPv6 tiene un formato no válido, se lanza una excepción.

Si la cadena de entrada contiene una dirección IPv4 válida, devuelve su equivalente en IPv6. HEX puede estar en mayúsculas o minúsculas.

Sintaxis

IPv6StringToNum(string)

Alias: INET6_ATON

Argumentos

  • string — Cadena con la dirección IPv6. String

Valor devuelto

Devuelve la dirección IPv6 en formato binario. FixedString(16)

Ejemplos

Ejemplo 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

Introducido en: v22.3.0

Convierte una dirección IPv6 de su representación textual estándar al formato binario (FixedString(16)). Acepta direcciones IPv6 con mapeo de IPv4 en el formato ::ffff:111.222.33.44.. Si la dirección IPv6 tiene un formato no válido, devuelve el valor predeterminado ::.

Sintaxis

IPv6StringToNumOrDefault(string)

Argumentos

  • string — Cadena con la dirección IPv6. String

Valor devuelto

Dirección IPv6 en formato binario, o FixedString(16) rellenado con ceros si no es válida. FixedString(16)

Ejemplos

Ejemplo básico con una dirección no válida

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

IPv6StringToNumOrNull

Introducido en: v22.3.0

Convierte una dirección IPv6 de su representación de texto estándar a formato binario (FixedString(16)). Acepta direcciones IPv6 con mapeo de IPv4 en el formato ::ffff:111.222.33.44.. Si la dirección IPv6 tiene un formato no válido, devuelve NULL.

Sintaxis

IPv6StringToNumOrNull(string)

Argumentos

  • string — Cadena con una dirección IPv6. String

Valor devuelto

Devuelve la dirección IPv6 en formato binario, o NULL si no es válida. Nullable(FixedString(16))

Ejemplos

Ejemplo básico con una dirección no válida

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

cutIPv6

Introducido en: v1.1.0

Acepta un valor FixedString(16) que contiene la dirección IPv6 en formato binario. Devuelve una cadena que contiene la dirección, con el número especificado de bytes eliminados, en formato de texto.

Sintaxis

cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)

Argumentos

  • x — Dirección IPv6 en formato binario. FixedString(16) o IPv6
  • bytesToCutForIPv6 — Número de bytes que se deben eliminar para IPv6. UInt8
  • bytesToCutForIPv4 — Número de bytes que se deben eliminar para IPv4. UInt8

Valor devuelto

Devuelve una cadena que contiene la dirección IPv6 en formato de texto con los bytes especificados eliminados. String

Ejemplos

Ejemplo 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

Introducido en: v21.4.0

Determina si una dirección IP está incluida en una red representada en notación enrutamiento entre dominios sin clases (CIDR).

Esta función acepta direcciones IPv4 e IPv6 (y redes) representadas como cadenas. Devuelve 0 si la versión IP de la dirección y la del CIDR no coinciden.

Sintaxis

isIPAddressInRange(address, prefix)

Argumentos

  • address — Una dirección IPv4 o IPv6. String
  • prefix — Un prefijo de red IPv4 o IPv6 en formato CIDR. String

Valor devuelto

Devuelve 1 si la versión IP de la dirección y el CIDR coinciden; de lo contrario, 0. UInt8

Ejemplos

Dirección IPv4 dentro del rango

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

Dirección IPv4 fuera del rango

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

Dirección IPv6 fuera de rango

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

isIPv4String

Introducido en: v21.1.0

Determina si la cadena de entrada es una dirección IPv4. Para la versión para IPv6, consulta isIPv6String.

Sintaxis

isIPv4String(string)

Argumentos

  • string — cadena con la dirección IP que se va a comprobar. String

Valor devuelto

Devuelve 1 si string es una dirección IPv4; de lo contrario, 0. UInt8

Ejemplos

Ejemplo 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

Introducido en: v21.1.0

Determina si la cadena de entrada es una dirección IPv6. Para la versión para IPv4, consulte isIPv4String.

Sintaxis

isIPv6String(string)

Argumentos

  • string — Cadena con la dirección IP que se va a comprobar. String

Valor devuelto

Devuelve 1 si string es una dirección IPv6; de lo contrario, 0. UInt8

Ejemplos

Ejemplo 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

Introducido en: v20.1.0

Convierte una cadena o una dirección IPv4 en formato UInt32 al tipo IPv4. Es similar a las funciones IPv4StringToNum y IPv4NumToString, pero admite como argumentos de entrada tanto cadenas como tipos de datos enteros sin signo.

Sintaxis

toIPv4(x)

Argumentos

Valor devuelto

Devuelve una dirección IPv4. IPv4

Ejemplos

Ejemplo de uso

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

Comparación con las funciones 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                 │
└───────────────────────────────────┴──────────────────────────┘

Conversión a partir de un entero

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

toIPv4OrDefault

Introducido en: v22.3.0

Convierte una cadena o una dirección IPv4 en formato UInt32 al tipo IPv4. Si la dirección IPv4 tiene un formato no válido, devuelve 0.0.0.0 (IPv4 0) o el valor predeterminado de IPv4 especificado.

Sintaxis

toIPv4OrDefault(string[, default])

Argumentos

  • string — Cadena con la dirección IP que se va a convertir. String
  • default — Opcional. Valor que se devolverá si string no es una dirección IPv4 válida. IPv4

Valor devuelto

Devuelve la dirección IPv4 obtenida a partir de la cadena, o el valor predeterminado si la conversión falla. IPv4

Ejemplos

Cadenas IPv4 válidas y no vá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

Introducido en: v22.3.0

Convierte un valor de entrada en un valor de tipo IPv4, pero devuelve NULL en caso de error. Como toIPv4, pero devuelve NULL en lugar de lanzar una excepción ante errores de conversión.

Argumentos admitidos:

  • Representaciones en cadena de direcciones IPv4 en notación decimal con puntos.
  • Representaciones enteras de direcciones IPv4.

Argumentos no admitidos (devuelven NULL):

  • Formatos de direcciones IP no válidos.
  • Direcciones IPv6.
  • Valores fuera de rango.
  • Direcciones malformadas.

Sintaxis

toIPv4OrNull(x)

Argumentos

  • x — Una dirección IPv4 representada como cadena o entero. String o Integer

Valor devuelto

Devuelve una dirección IPv4 si la operación se realiza correctamente; de lo contrario, NULL. IPv4 o NULL

Ejemplos

Ejemplo 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

Introducido en: v23.1.0

Convierte un valor de entrada en un valor de tipo IPv4, pero devuelve la dirección IPv4 nula en caso de error. Como toIPv4, pero devuelve la dirección IPv4 nula (0.0.0.0) en lugar de lanzar una excepción cuando se producen errores de conversión.

Argumentos admitidos:

  • Representaciones en cadena de direcciones IPv4 en notación decimal con puntos.
  • Representaciones enteras de direcciones IPv4.

Argumentos no admitidos (devuelven una dirección IPv4 nula):

  • Formatos de dirección IP no válidos.
  • Direcciones IPv6.
  • Valores fuera de rango.

Sintaxis

toIPv4OrZero(x)

Argumentos

  • x — Una representación en forma de cadena o de entero de una dirección IPv4. String o Integer

Valor devuelto

Devuelve una dirección IPv4 si la conversión se realiza correctamente; en caso contrario, devuelve la dirección IPv4 cero (0.0.0.0). IPv4

Ejemplos

Ejemplo 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

Introducido en: v20.1.0

Convierte una cadena o una dirección IPv6 en formato UInt128 al tipo IPv6. En el caso de las cadenas, si la dirección IPv6 tiene un formato no válido, devuelve un valor vacío. Es similar a las funciones IPv6StringToNum y IPv6NumToString, que convierten direcciones IPv6 a y desde formato binario (es decir, FixedString(16)).

Si la cadena de entrada contiene una dirección IPv4 válida, se devuelve su equivalente en IPv6.

Sintaxis

toIPv6(x)

Argumentos

Valor devuelto

Devuelve una dirección IPv6. IPv6

Ejemplos

Ejemplo 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 │
└───────────────────────────────────┴──────────────────────────────────┘

Mapeo de IPv4 a IPv6

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

toIPv6OrDefault

Introducido en: v22.3.0

Convierte una cadena o una dirección IPv6 en formato UInt128 al tipo IPv6. Si la dirección IPv6 tiene un formato no válido, devuelve :: (IPv6 0) o el valor predeterminado de IPv6 proporcionado.

Sintaxis

toIPv6OrDefault(string[, default])

Argumentos

  • string — Cadena con la dirección IP que se va a convertir. - default — Opcional. Valor que se devolverá si la cadena tiene un formato no válido.

Valor devuelto

Devuelve la dirección IPv6; en caso contrario, :: o el valor predeterminado opcional proporcionado si el argumento string tiene un formato no válido. IPv6

Ejemplos

Cadenas IPv6 válidas y no vá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

Introducido en: v22.3.0

Convierte un valor de entrada en un valor de tipo IPv6, pero devuelve NULL en caso de error. Igual que toIPv6, pero devuelve NULL en lugar de generar una excepción cuando se producen errores de conversión.

Argumentos admitidos:

  • Representaciones en cadena de direcciones IPv6 en notación estándar.
  • Representaciones en cadena de direcciones IPv4 (convertidas en direcciones IPv6 con mapeo de IPv4).
  • Representaciones binarias de direcciones IPv6.

Argumentos no admitidos (devuelven NULL):

  • Formatos de direcciones IP no válidos.
  • Direcciones IPv6 mal formadas.
  • Valores fuera de rango.
  • Notación no válida.

Sintaxis

toIPv6OrNull(x)

Argumentos

  • x — Una representación textual de una dirección IPv6 o IPv4. String

Valor devuelto

Devuelve una dirección IPv6 si la conversión se realiza correctamente; de lo contrario, NULL. IPv6 o NULL

Ejemplos

Ejemplo 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

Introducido en: v23.1.0

Convierte un valor de entrada en un valor de tipo IPv6, pero devuelve la dirección IPv6 nula en caso de error. Es como toIPv6, pero devuelve la dirección IPv6 nula (::) en lugar de lanzar una excepción cuando se producen errores de conversión.

Argumentos admitidos:

  • Representaciones en cadena de direcciones IPv6 en notación estándar.
  • Representaciones en cadena de direcciones IPv4 (convertidas a IPv6 con mapeo de IPv4).
  • Representaciones binarias de direcciones IPv6.

Argumentos no admitidos (devuelven la dirección IPv6 nula):

  • Formatos de dirección IP no válidos.
  • Direcciones IPv6 mal formadas.
  • Valores fuera de rango.

Sintaxis

toIPv6OrZero(x)

Argumentos

  • x — Una representación en cadena de una dirección IPv6 o IPv4. String

Valor devuelto

Devuelve una dirección IPv6 si la conversión se realiza correctamente; de lo contrario, devuelve la dirección IPv6 nula (::). IPv6

Ejemplos

Ejemplo 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