Passer au contenu principal

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
Query
SELECT IPv4CIDRToRange(toIPv4('192.168.5.2'), 16);
Response
┌─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
Query
IPv4NumToString(3232235521)
Response
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
Query
SELECT
    IPv4NumToStringClassC(ClientIP) AS k,
    count() AS c
FROM test.hits
GROUP BY k
ORDER BY c DESC
LIMIT 10
Response
┌─k──────────────┬─────c─┐
│ 83.149.9.xxx   │ 26238 │
│ 217.118.81.xxx │ 26074 │
│ 213.87.129.xxx │ 25481 │
│ 83.149.8.xxx   │ 24984 │
│ 217.118.83.xxx │ 22797 │
│ 78.25.120.xxx  │ 22354 │
│ 213.87.131.xxx │ 21285 │
│ 78.25.121.xxx  │ 20887 │
│ 188.162.65.xxx │ 19694 │
│ 83.149.48.xxx  │ 17406 │
└────────────────┴───────┘

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
Query
IPv4StringToNum('192.168.0.1')
Response
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
Query
SELECT
    IPv4StringToNumOrDefault('127.0.0.1') AS valid,
    IPv4StringToNumOrDefault('invalid') AS invalid;
Response
┌──────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
Query
SELECT
IPv4StringToNumOrNull('127.0.0.1') AS valid,
IPv4StringToNumOrNull('invalid') AS invalid;
Response
┌──────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
Query
SELECT IPv6NumToString(IPv4ToIPv6(IPv4StringToNum('192.168.0.1'))) AS addr;
Response
┌─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
Query
SELECT IPv6CIDRToRange(toIPv6('2001:0db8:0000:85a3:0000:0000:ac1f:8001'), 32);
Response
┌─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
Query
SELECT IPv6NumToString(toFixedString(unhex('2A0206B8000000000000000000000011'), 16)) AS addr;
Response
┌─addr─────────┐
│ 2a02:6b8::11 │
└──────────────┘
Analyse IPv6 avec la table hits
Query
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
LIMIT 10
Response
┌─IPv6NumToString(ClientIP6)──────────────┬─────c─┐
│ 2a02:2168:aaa:bbbb::2                   │ 24695 │
│ 2a02:2698:abcd:abcd:abcd:abcd:8888:5555 │ 22408 │
│ 2a02:6b8:0:fff::ff                      │ 16389 │
│ 2a01:4f8:111:6666::2                    │ 16016 │
│ 2a02:2168:888:222::1                    │ 15896 │
│ 2a01:7e00::ffff:ffff:ffff:222           │ 14774 │
│ 2a02:8109:eee:ee:eeee:eeee:eeee:eeee    │ 14443 │
│ 2a02:810b:8888:888:8888:8888:8888:8888  │ 14345 │
│ 2a02:6b8:0:444:4444:4444:4444:4444      │ 14279 │
│ 2a01:7e00::ffff:ffff:ffff:ffff          │ 13880 │
└─────────────────────────────────────────┴───────┘
Adresses IPv4 mappées sur IPv6
Query
SELECT
    IPv6NumToString(ClientIP6 AS k),
    count() AS c
FROM hits_all
WHERE EventDate = today()
GROUP BY k
ORDER BY c DESC
LIMIT 10
Response
┌─IPv6NumToString(ClientIP6)─┬──────c─┐
│ ::ffff:94.26.111.111       │ 747440 │
│ ::ffff:37.143.222.4        │ 529483 │
│ ::ffff:5.166.111.99        │ 317707 │
│ ::ffff:46.38.11.77         │ 263086 │
│ ::ffff:79.105.111.111      │ 186611 │
│ ::ffff:93.92.111.88        │ 176773 │
│ ::ffff:84.53.111.33        │ 158709 │
│ ::ffff:217.118.11.22       │ 154004 │
│ ::ffff:217.118.11.33       │ 148449 │
│ ::ffff:217.118.11.44       │ 148243 │
└────────────────────────────┴────────┘

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 d’adresse IPv6. String
Valeur renvoyée Renvoie l’adresse IPv6 au format binaire. FixedString(16) Exemples Exemple de base
Query
SELECT addr, cutIPv6(IPv6StringToNum(addr), 0, 0) FROM (SELECT ['notaddress', '127.0.0.1', '1111::ffff'] AS addr) ARRAY JOIN addr;
Response
┌─addr───────┬─cutIPv6(IPv6StringToNum(addr), 0, 0)─┐
│ notaddress │ ::                                   │
│ 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
Query
SELECT
    IPv6NumToString(IPv6StringToNumOrDefault('2001:db8::1')) AS valid,
    IPv6NumToString(IPv6StringToNumOrDefault('invalid')) AS invalid;
Response
┌─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
Query
SELECT
    IPv6NumToString(IPv6StringToNumOrNull('2001:db8::1')) AS valid,
    IPv6StringToNumOrNull('invalid') AS invalid;
Response
┌─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
Query
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)
Response
┌─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
Query
SELECT isIPAddressInRange('127.0.0.1', '127.0.0.0/8')
Response
1
Adresse IPv4 en dehors de la plage
Query
SELECT isIPAddressInRange('127.0.0.1', 'ffff::/16')
Response
0
Adresse IPv6 en dehors de la plage
Query
SELECT isIPAddressInRange('::ffff:192.168.0.1', '::ffff:192.168.0.4/128')
Response
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
Query
SELECT addr, isIPv4String(addr)
FROM(
SELECT ['0.0.0.0', '127.0.0.1', '::ffff:127.0.0.1'] AS addr
)
ARRAY JOIN addr;
Response
┌─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
Query
SELECT addr, isIPv6String(addr)
FROM(SELECT ['::', '1111::ffff', '::ffff:127.0.0.1', '127.0.0.1'] AS addr)
ARRAY JOIN addr;
Response
┌─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
Query
SELECT toIPv4('171.225.130.45');
Response
┌─toIPv4('171.225.130.45')─┐
│ 171.225.130.45           │
└──────────────────────────┘
Comparaison avec les fonctions IPv4StringToNum et IPv4NumToString.
Query
WITH
    '171.225.130.45' AS IPv4_string
SELECT
    hex(IPv4StringToNum(IPv4_string)),
    hex(toIPv4(IPv4_string))
Response
┌─hex(IPv4StringToNum(IPv4_string))─┬─hex(toIPv4(IPv4_string))─┐
│ ABE1822D                          │ ABE1822D                 │
└───────────────────────────────────┴──────────────────────────┘
Conversion d’un entier
Query
SELECT toIPv4(2130706433);
Response
┌─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
Query
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;
Response
┌─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
Query
SELECT
    toIPv4OrNull('192.168.1.1') AS valid_ip,
    toIPv4OrNull('invalid.ip') AS invalid_ip
Response
┌─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
Query
SELECT
    toIPv4OrZero('192.168.1.1') AS valid_ip,
    toIPv4OrZero('invalid.ip') AS invalid_ip
Response
┌─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
Query
WITH '2001:438:ffff::407d:1bc1' AS IPv6_string
SELECT
    hex(IPv6StringToNum(IPv6_string)),
    hex(toIPv6(IPv6_string));
Response
┌─hex(IPv6StringToNum(IPv6_string))─┬─hex(toIPv6(IPv6_string))─────────┐
│ 20010438FFFF000000000000407D1BC1  │ 20010438FFFF000000000000407D1BC1 │
└───────────────────────────────────┴──────────────────────────────────┘
Correspondance IPv4-IPv6
Query
SELECT toIPv6('127.0.0.1');
Response
┌─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 d’adresse IP à convertir. - 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
Query
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;
Response
┌─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 textuelles 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 invalides.
  • 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
Query
SELECT
    toIPv6OrNull('2001:0db8:85a3:0000:0000:8a2e:0370:7334') AS valid_ipv6,
    toIPv6OrNull('invalid::ip') AS invalid_ipv6
Response
┌─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
Query
SELECT
    toIPv6OrZero('2001:0db8:85a3:0000:0000:8a2e:0370:7334') AS valid_ipv6,
    toIPv6OrZero('invalid::ip') AS invalid_ipv6
Response
┌─valid_ipv6──────────────────────────┬─invalid_ipv6─┐
│ 2001:db8:85a3::8a2e:370:7334        │ ::           │
└─────────────────────────────────────┴──────────────┘
Dernière modification le 25 juin 2026