Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions permettant de manipuler des adresses IPv4 et IPv6

IPv4CIDRToRange

Introduit dans : v20.1.0

Prend une adresse IPv4 et la longueur de son préfixe CIDR (Classless Inter-Domain Routing), et renvoie la plage d’adresses du sous-réseau sous la forme d’un tuple de deux valeurs IPv4 : la première et la dernière adresse de ce sous-réseau. Pour la version IPv6, voir IPv6CIDRToRange.

Syntaxe

IPv4CIDRToRange(ipv4, cidr)

Arguments

Valeur renvoyée

Renvoie un tuple contenant deux adresses IPv4 représentant la plage d’adresses du sous-réseau. Tuple(IPv4, IPv4)

Exemples

Exemple d’utilisation

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

IPv4NumToString

Introduite dans : v1.1.0

Convertit un entier de 32 bits en sa représentation sous forme de chaîne d’adresse IPv4 en notation décimale pointée (format A.B.C.D). Interprète l’entrée selon l’ordre des octets big-endian.

Syntaxe

IPv4NumToString(num)

Alias : INET_NTOA

Arguments

  • num — adresse IPv4 sous la forme d’un nombre UInt32. UInt32

Valeur renvoyée

Renvoie un nombre représentant l’adresse MAC, ou 0 si le format n’est pas valide. String

Exemples

Exemple d’utilisation

SELECT IPv4NumToString(3232235521)
192.168.0.1

IPv4NumToStringClassC

Introduit dans : v1.1.0

Convertit un entier de 32 bits en sa représentation textuelle d'adresse IPv4 en notation décimale pointée (format A.B.C.D), similaire à IPv4NumToString, mais en utilisant xxx à la place du dernier octet.

Syntaxe

IPv4NumToStringClassC(num)

Arguments

  • num — Adresse IPv4 représentée sous forme de nombre UInt32. UInt32

Valeur renvoyée

Renvoie la chaîne représentant l’adresse IPv4, où xxx remplace le dernier octet. String

Exemples

Exemple de base avec agrégation

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

Introduit dans : v1.1.0

Convertit une chaîne d’adresse IPv4 en notation décimale pointée (format A.B.C.D) en sa représentation entière correspondante sur 32 bits. (L’inverse de IPv4NumToString). Si l’adresse IPv4 n’est pas dans un format valide, une exception est levée.

Syntaxe

IPv4StringToNum(string)

Alias : INET_ATON

Arguments

  • string — chaîne contenant une adresse IPv4. String

Valeur renvoyée

Renvoie l’adresse IPv4. UInt32

Exemples

Exemple d’utilisation

SELECT IPv4StringToNum('192.168.0.1')
3232235521

IPv4StringToNumOrDefault

Introduit dans : v22.3.0

Convertit une chaîne d’adresse IPv4 en notation décimale pointée (format A.B.C.D) en sa représentation sous forme d’entier 32 bits correspondante. Si l’adresse IPv4 n’a pas un format valide, renvoie 0.

Syntaxe

IPv4StringToNumOrDefault(string)

Arguments

  • string — chaîne contenant une adresse IPv4. String

Valeur renvoyée

Renvoie l’adresse IPv4, ou 0 si elle est invalide. UInt32

Exemples

Exemple avec une adresse invalide

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

IPv4StringToNumOrNull

Introduit dans : v22.3.0

Convertit un entier 32 bits en sa représentation sous forme de chaîne d’adresse IPv4 en notation décimale pointée (format A.B.C.D), mais si l’adresse IPv4 a un format invalide, renvoie NULL.

Syntaxe

IPv4StringToNumOrNull(string)

Arguments

  • string — chaîne contenant une adresse IPv4. String

Valeur renvoyée

Renvoie l’adresse IPv4, ou NULL si elle est invalide. Nullable(UInt32)

Exemples

Exemple avec une adresse invalide

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

IPv4ToIPv6

Introduit dans : v1.1.0

Interprète un nombre 32 bits (big endian) comme une adresse IPv4, puis l’interprète comme l’adresse IPv6 correspondante au format FixedString(16).

Syntaxe

IPv4ToIPv6(x)

Arguments

Valeur renvoyée

Renvoie une adresse IPv6 au format binaire. FixedString(16)

Exemples

Exemple d'utilisation

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

IPv6CIDRToRange

Introduit dans : v20.1.0

Prend une adresse IPv6 avec la longueur de son préfixe Classless Inter-Domain Routing (CIDR) et renvoie la plage d’adresses du sous-réseau sous la forme d’un Tuple de deux valeurs IPv6 : l’adresse la plus basse et la plus haute de ce sous-réseau. Pour la version IPv4, voir IPv4CIDRToRange.

Syntaxe

IPv6CIDRToRange(ipv6, cidr)

Arguments

Valeur renvoyée

Renvoie un tuple de deux adresses IPv6 représentant la plage du sous-réseau. Tuple(IPv6, IPv6)

Exemples

Exemple d'utilisation

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

Introduit dans : v1.1.0

Convertit une adresse IPv6 du format binaire (FixedString(16)) en sa représentation textuelle standard. Les adresses IPv6 mappées sur IPv4 sont affichées au format ::ffff:111.222.33.44.

Syntaxe

IPv6NumToString(x)

Alias : INET6_NTOA

Arguments

Valeur renvoyée

Renvoie la chaîne de l'adresse IPv6 au format texte. String

Exemples

Exemple d'utilisation

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

Analyse IPv6 avec la table 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 │
└───────────────────────┴───┘

Adresses IPv4 mappées sur 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

Introduit dans : v1.1.0

Convertit une adresse IPv6 de sa représentation textuelle standard en format binaire (FixedString(16)). Accepte les adresse IPv6 mappée sur IPv4 au format ::ffff:111.222.33.44.. Si l’adresse IPv6 est dans un format invalide, une exception est levée.

Si la chaîne d’entrée contient une adresse IPv4 valide, renvoie son équivalent IPv6. HEX peut être en majuscules ou en minuscules.

Syntaxe

IPv6StringToNum(string)

Alias : INET6_ATON

Arguments

  • string — Chaîne représentant une adresse IPv6. String

Valeur renvoyée

Renvoie l’adresse IPv6 au format binaire. FixedString(16)

Exemples

Exemple de base

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

Introduit dans : v22.3.0

Convertit une adresse IPv6 de sa représentation textuelle standard au format binaire (FixedString(16)). Accepte les adresse IPv6 mappée sur IPv4 au format ::ffff:111.222.33.44.. Si l'adresse IPv6 n'est pas dans un format valide, elle renvoie la valeur par défaut ::.

Syntaxe

IPv6StringToNumOrDefault(string)

Arguments

  • string — chaîne représentant une adresse IPv6. String

Valeur renvoyée

Adresse IPv6 au format binaire, ou FixedString(16) rempli de zéros si l’adresse n’est pas valide. FixedString(16)

Exemples

Exemple de base avec une adresse invalide

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

IPv6StringToNumOrNull

Introduit dans : v22.3.0

Convertit une adresse IPv6 de sa représentation textuelle standard en format binaire (FixedString(16)). Accepte les adresses IPv6 mappées sur IPv4 au format ::ffff:111.222.33.44.. Si le format de l’adresse IPv6 n’est pas valide, renvoie NULL.

Syntaxe

IPv6StringToNumOrNull(string)

Arguments

  • string — Chaîne représentant une adresse IPv6. String

Valeur renvoyée

Renvoie l’adresse IPv6 au format binaire, ou NULL si elle n’est pas valide. Nullable(FixedString(16))

Exemples

Exemple simple avec une adresse non valide

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

cutIPv6

Introduit dans : v1.1.0

Accepte une valeur FixedString(16) contenant l’adresse IPv6 au format binaire. Renvoie une chaîne contenant l’adresse après suppression du nombre d’octets spécifié, au format texte.

Syntaxe

cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)

Arguments

  • x — adresse IPv6 au format binaire. FixedString(16) ou IPv6
  • bytesToCutForIPv6 — nombre d’octets à supprimer pour IPv6. UInt8
  • bytesToCutForIPv4 — nombre d’octets à supprimer pour IPv4. UInt8

Valeur renvoyée

Renvoie une chaîne contenant l’adresse IPv6 au format texte après suppression des octets spécifiés. String

Exemples

Exemple d’utilisation

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

Introduit dans : v21.4.0

Détermine si une adresse IP appartient à un réseau représenté au format Classless Inter-Domain Routing (CIDR).

Cette fonction accepte les adresses IPv4 et IPv6 (ainsi que les réseaux) représentées sous forme de chaînes. Elle renvoie 0 si la version IP de l’adresse et celle du CIDR ne correspondent pas.

Syntaxe

isIPAddressInRange(address, prefix)

Arguments

  • address — Une adresse IPv4 ou IPv6. String
  • prefix — Un préfixe réseau IPv4 ou IPv6 au format CIDR. String

Valeur renvoyée

Renvoie 1 si la version IP de l’adresse et celle du CIDR correspondent, sinon 0. UInt8

Exemples

Adresse IPv4 comprise dans la plage

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

Adresse IPv4 en dehors de la plage

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

Adresse IPv6 en dehors de la plage

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

isIPv4String

Introduit dans : v21.1.0

Détermine si la chaîne d'entrée est ou non une adresse IPv4. Pour la version IPv6, voir isIPv6String.

Syntaxe

isIPv4String(string)

Arguments

  • string — Chaîne représentant l’adresse IP à vérifier. String

Valeur renvoyée

Renvoie 1 si string est une adresse IPv4, sinon 0. UInt8

Exemples

Exemple d’utilisation

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

Introduit dans : v21.1.0

Détermine si la chaîne d’entrée est ou non une adresse IPv6. Pour la version IPv4, voir isIPv4String.

Syntaxe

isIPv6String(string)

Arguments

  • string — Chaîne contenant l’adresse IP à vérifier. String

Valeur renvoyée

Renvoie 1 si string est une adresse IPv6, sinon 0. UInt8

Exemples

Exemple d’utilisation

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

Introduit dans : v20.1.0

Convertit une chaîne ou une adresse IPv4 sous forme de UInt32 en type IPv4. Cette fonction est similaire aux fonctions IPv4StringToNum et IPv4NumToString, mais elle prend en charge à la fois les types de données chaîne et entier non signé en arguments d'entrée.

Syntaxe

toIPv4(x)

Arguments

Valeur renvoyée

Renvoie une adresse IPv4. IPv4

Exemples

Exemple d'utilisation

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

Comparaison avec les fonctions IPv4StringToNum et 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                 │
└───────────────────────────────────┴──────────────────────────┘

Conversion d’un entier

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

toIPv4OrDefault

Introduit dans : v22.3.0

Convertit une chaîne ou une valeur UInt32 représentant une adresse IPv4 en type IPv4. Si l'adresse IPv4 a un format invalide, la fonction renvoie 0.0.0.0 (IPv4 0) ou la valeur IPv4 par défaut fournie.

Syntaxe

toIPv4OrDefault(string[, default])

Arguments

  • string — Chaîne contenant l'adresse IP à convertir. String
  • default — Facultatif. Valeur à renvoyer si la chaîne n'est pas une adresse IPv4 valide. IPv4

Valeur renvoyée

Renvoie une adresse IPv4 obtenue à partir de la chaîne, ou la valeur par défaut si la conversion échoue. IPv4

Exemples

Chaînes IPv4 valides et non valides

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

Introduit dans : v22.3.0

Convertit une valeur d’entrée en une valeur de type IPv4, mais renvoie NULL en cas d’erreur. Comme toIPv4, mais renvoie NULL au lieu de lever une exception en cas d’erreur de conversion.

Arguments pris en charge :

  • Représentations sous forme de chaîne d’adresses IPv4 en notation décimale pointée.
  • Représentations entières d’adresses IPv4.

Arguments non pris en charge (renvoient NULL) :

  • Formats d’adresse IP non valides.
  • Adresses IPv6.
  • Valeurs hors plage.
  • Adresses mal formées.

Syntaxe

toIPv4OrNull(x)

Arguments

  • x — Une représentation d'une adresse IPv4 sous forme de chaîne ou d'entier. String ou Integer

Valeur renvoyée

Renvoie une adresse IPv4 en cas de succès, sinon NULL. IPv4 ou NULL

Exemples

Exemple d'utilisation

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

toIPv4OrZero

Introduit dans : v23.1.0

Convertit une valeur d’entrée en une valeur de type IPv4, mais renvoie l’adresse IPv4 nulle en cas d’erreur. Comme toIPv4, mais renvoie l’adresse IPv4 nulle (0.0.0.0) au lieu de lever une exception en cas d’erreur de conversion.

Arguments pris en charge :

  • Représentations sous forme de chaînes d’adresses IPv4 en notation décimale pointée.
  • Représentations entières d’adresses IPv4.

Arguments non pris en charge (renvoie l’adresse IPv4 nulle) :

  • Formats d’adresse IP non valides.
  • Adresses IPv6.
  • Valeurs hors plage.

Syntaxe

toIPv4OrZero(x)

Arguments

  • x — Une représentation d'une adresse IPv4 sous forme de chaîne ou d'entier. String ou Integer

Valeur renvoyée

Renvoie une adresse IPv4 en cas de succès ; sinon, l'adresse IPv4 nulle (0.0.0.0). IPv4

Exemples

Exemple d'utilisation

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

Introduit dans : v20.1.0

Convertit une chaîne ou une adresse IPv6 au format UInt128 vers le type IPv6. Pour les chaînes, si l’adresse IPv6 a un format invalide, renvoie une valeur vide. Semblable aux fonctions IPv6StringToNum et IPv6NumToString, qui convertissent une adresse IPv6 depuis et vers le format binaire (c.-à-d. FixedString(16)).

Si la chaîne d’entrée contient une adresse IPv4 valide, l’équivalent IPv6 de cette adresse IPv4 est renvoyé.

Syntaxe

toIPv6(x)

Arguments

Valeur renvoyée

Renvoie une adresse IPv6. IPv6

Exemples

Exemple d'utilisation

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

Correspondance IPv4-IPv6

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

toIPv6OrDefault

Introduit dans : v22.3.0

Convertit une chaîne ou une valeur UInt128 représentant une adresse IPv6 en type IPv6. Si l'adresse IPv6 a un format non valide, la fonction renvoie :: (IPv6 0) ou l'adresse IPv6 par défaut fournie.

Syntaxe

toIPv6OrDefault(string[, default])

Arguments

  • string — Chaîne contenant l’adresse IP. - default — Facultatif. Valeur à renvoyer si la chaîne a un format invalide.

Valeur renvoyée

Renvoie l’adresse IPv6, sinon :: ou la valeur par défaut facultative fournie si l’argument string a un format invalide. IPv6

Exemples

Chaînes IPv6 valides et invalides

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

Introduit dans : v22.3.0

Convertit une valeur d’entrée en valeur de type IPv6, mais renvoie NULL en cas d’erreur. Comme toIPv6, mais renvoie NULL au lieu de lever une exception en cas d’erreur de conversion.

Arguments pris en charge :

  • Représentations sous forme de chaîne d’adresses IPv6 en notation standard.
  • Représentations textuelles d’adresses IPv4 (converties en adresses IPv6 mappées sur IPv4).
  • Représentations binaires d’adresses IPv6.

Arguments non pris en charge (renvoient NULL) :

  • Formats d’adresse IP non valides.
  • Adresses IPv6 mal formées.
  • Valeurs hors plage.
  • Notation invalide.

Syntaxe

toIPv6OrNull(x)

Arguments

  • x — Une représentation sous forme de chaîne d’une adresse IPv6 ou IPv4. String

Valeur renvoyée

Renvoie une adresse IPv6 en cas de réussite, sinon NULL. IPv6 ou NULL

Exemples

Exemple d’utilisation

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

Introduit dans : v23.1.0

Convertit une valeur d’entrée en valeur de type IPv6, mais renvoie l’adresse IPv6 nulle en cas d’erreur. Comme toIPv6, mais renvoie l’adresse IPv6 nulle (::) au lieu de lever une exception en cas d’erreur de conversion.

Arguments pris en charge :

  • Représentations sous forme de chaîne d’adresses IPv6 en notation standard.
  • Représentations sous forme de chaîne d’adresses IPv4 (converties en IPv6 mappées sur IPv4).
  • Représentations binaires d’adresses IPv6.

Arguments non pris en charge (renvoient une adresse IPv6 nulle) :

  • Formats d’adresse IP non valides.
  • Adresses IPv6 mal formées.
  • Valeurs hors plage.

Syntaxe

toIPv6OrZero(x)

Arguments

  • x — La représentation sous forme de chaîne d'une adresse IPv6 ou IPv4. String

Valeur renvoyée

Renvoie une adresse IPv6 en cas de réussite, sinon l'adresse IPv6 nulle (::). IPv6

Exemples

Exemple d'utilisation

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