メインコンテンツへスキップ

IPv4CIDRToRange

導入バージョン: v20.1.0 IPv4 アドレスとその Classless Inter-Domain Routing (CIDR) プレフィックス長を受け取り、そのサブネットのアドレス範囲を、2 つの IPv4 値からなるタプルとして返します。つまり、そのサブネットの先頭アドレスと末尾アドレスです。 IPv6 版については IPv6CIDRToRange を参照してください。 構文
IPv4CIDRToRange(ipv4, cidr)
引数
  • ipv4 — IPv4 アドレス。IPv4 または String
  • cidr — CIDR 値。UInt8
戻り値 サブネットの範囲を表す 2 つの IPv4 アドレスからなるタプルを返します。Tuple(IPv4, IPv4) 使用例
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

導入バージョン: v1.1.0 32 ビット整数を、ドット区切りの 10 進表記 (A.B.C.D 形式) の IPv4 アドレスの文字列表現に変換します。 入力はビッグエンディアンのバイト順で解釈されます。 構文
IPv4NumToString(num)
別名: INET_NTOA 引数
  • num — IPv4 アドレスを表す UInt32 型の数値。UInt32
戻り値 MAC アドレスを表す数値を返します。形式が無効な場合は 0 を返します。String 使用例
Query
IPv4NumToString(3232235521)
Response
192.168.0.1

IPv4NumToStringClassC

導入バージョン: v1.1.0 32 ビット整数を、ドット区切りの 10 進表記 (A.B.C.D 形式) の IPv4 アドレスの文字列表現に変換します。 IPv4NumToString と似ていますが、最後のオクテットの代わりに xxx を使用します。 構文
IPv4NumToStringClassC(num)
引数
  • num — UInt32 値として表された IPv4 アドレス。UInt32
戻り値 最後のオクテットを xxx に置き換えた IPv4 アドレス文字列を返します。String 集計を用いた基本例
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

導入バージョン: v1.1.0 ドット区切りの 10 進表記 (A.B.C.D 形式) の IPv4 アドレス文字列を、対応する 32 ビット整数表現に変換します (IPv4NumToString の逆です) 。 IPv4 アドレスの形式が不正な場合は、例外が発生します。 構文
IPv4StringToNum(string)
別名: INET_ATON 引数
  • string — IPv4 アドレス文字列。String
戻り値 IPv4 アドレスを返します。UInt32 使用例
Query
IPv4StringToNum('192.168.0.1')
Response
3232235521

IPv4StringToNumOrDefault

導入バージョン: v22.3.0 ドット区切りの10進表記 (A.B.C.D 形式) の IPv4 アドレス文字列を、対応する 32 ビット整数表現に変換します。IPv4 アドレスの形式が無効な場合は、0 を返します。 構文
IPv4StringToNumOrDefault(string)
引数
  • string — IPv4 アドレス文字列。String
戻り値 IPv4アドレスを返します。無効な場合は 0 を返します。UInt32 無効なアドレスの例
Query
SELECT
    IPv4StringToNumOrDefault('127.0.0.1') AS valid,
    IPv4StringToNumOrDefault('invalid') AS invalid;
Response
┌──────valid─┬─invalid─┐
│ 2130706433 │       0 │
└────────────┴─────────┘

IPv4StringToNumOrNull

導入バージョン: v22.3.0 32 ビット整数を、ドット区切りの 10 進表記 (A.B.C.D 形式) による IPv4 アドレスの文字列表現に変換します。IPv4 アドレスの形式が無効な場合は、NULL を返します。 構文
IPv4StringToNumOrNull(string)
引数
  • string — IPv4 アドレス文字列。String
戻り値 IPv4 アドレスを返します。無効な場合は NULL を返します。Nullable(UInt32) 無効なアドレスの例
Query
SELECT
IPv4StringToNumOrNull('127.0.0.1') AS valid,
IPv4StringToNumOrNull('invalid') AS invalid;
Response
┌──────valid─┬─invalid─┐
│ 2130706433 │    ᴺᵁᴸᴸ │
└────────────┴─────────┘

IPv4ToIPv6

導入バージョン: v1.1.0 (ビッグエンディアンの) 32ビット整数を IPv4 アドレスとして解釈し、さらにそれを対応する IPv6 アドレスとして FixedString(16) フォーマットで表します。 構文
IPv4ToIPv6(x)
引数
  • x — IPv4アドレス。UInt32
戻り値 バイナリ形式のIPv6アドレスを返します。FixedString(16) 使用例
Query
SELECT IPv6NumToString(IPv4ToIPv6(IPv4StringToNum('192.168.0.1'))) AS addr;
Response
┌─addr───────────────┐
│ ::ffff:192.168.0.1 │
└────────────────────┘

IPv6CIDRToRange

導入バージョン: v20.1.0 IPv6 アドレスとその Classless Inter-Domain Routing (CIDR) のプレフィックス長を受け取り、そのサブネットのアドレス範囲を、サブネット内の最小アドレスと最大アドレスからなる 2 つの IPv6 値のタプルとして返します。 IPv4 版については IPv4CIDRToRange を参照してください。 構文
IPv6CIDRToRange(ipv6, cidr)
引数
  • ipv6 — IPv6 アドレス。IPv6 または String
  • cidr — CIDR 値。UInt8
戻り値 サブネットの範囲を表す 2 つの IPv6 アドレスからなるタプルを返します。Tuple(IPv6, IPv6) 使用例
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

導入バージョン: v1.1.0 IPv6 アドレスをバイナリ形式 (FixedString(16)) から標準的な文字列表現に変換します。 IPv4 マップド IPv6 アドレスは、::ffff:111.222.33.44 の形式で表示されます。 構文
IPv6NumToString(x)
別名: INET6_NTOA 引数 戻り値 テキスト形式の IPv6 アドレスを表す文字列を返します。String 使用例
Query
SELECT IPv6NumToString(toFixedString(unhex('2A0206B8000000000000000000000011'), 16)) AS addr;
Response
┌─addr─────────┐
│ 2a02:6b8::11 │
└──────────────┘
hits を用いた IPv6 の分析
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 │
└─────────────────────────────────────────┴───────┘
IPv6マップドIPv4アドレス
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

導入バージョン: v1.1.0 IPv6 アドレスを標準的なテキスト表現からバイナリ形式 (FixedString(16)) に変換します。 ::ffff:111.222.33.44. 形式の IPv4 マップド IPv6 アドレスを受け付けます。 IPv6 アドレスの形式が無効な場合は、例外が発生します。 入力文字列に有効な IPv4 アドレスが含まれている場合は、対応する IPv6 アドレスを返します。 HEX には大文字と小文字の両方を使用できます。 構文
IPv6StringToNum(string)
別名: INET6_ATON 引数
  • string — IPv6 アドレスの文字列。String
戻り値 IPv6 アドレスをバイナリ形式で返します。FixedString(16) 基本例
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

導入バージョン: v22.3.0 IPv6 アドレスを標準的なテキスト表現からバイナリ形式 (FixedString(16)) に変換します。 ::ffff:111.222.33.44. 形式の IPv4 マップド IPv6 アドレスを受け付けます。 IPv6 アドレスの形式が無効な場合は、デフォルト値 :: を返します。 構文
IPv6StringToNumOrDefault(string)
引数
  • string — IPv6 アドレスの文字列。String
戻り値 バイナリ形式の IPv6 アドレス。無効な場合は、ゼロで埋められた FixedString(16)。FixedString(16) 無効なアドレスの基本例
Query
SELECT
    IPv6NumToString(IPv6StringToNumOrDefault('2001:db8::1')) AS valid,
    IPv6NumToString(IPv6StringToNumOrDefault('invalid')) AS invalid;
Response
┌─valid───────┬─invalid─┐
│ 2001:db8::1 │ ::      │
└─────────────┴─────────┘

IPv6StringToNumOrNull

導入バージョン: v22.3.0 IPv6 アドレスを標準的なテキスト表現からバイナリ形式 (FixedString(16)) に変換します。 ::ffff:111.222.33.44. 形式の IPv4 マップド IPv6 アドレスを受け付けます。 IPv6 アドレスの形式が正しくない場合は、NULL を返します。 構文
IPv6StringToNumOrNull(string)
引数
  • string — IPv6 アドレスの文字列。String
戻り値 IPv6 アドレスをバイナリ形式で返します。無効な場合は NULL を返します。Nullable(FixedString(16)) 無効なアドレスを使った基本例
Query
SELECT
    IPv6NumToString(IPv6StringToNumOrNull('2001:db8::1')) AS valid,
    IPv6StringToNumOrNull('invalid') AS invalid;
Response
┌─valid───────┬─invalid─┐
│ 2001:db8::1 │    ᴺᵁᴸᴸ │
└─────────────┴─────────┘

cutIPv6

導入バージョン: v1.1.0 IPv6 アドレスをバイナリ形式で格納した FixedString(16) 型の値を受け取ります。 指定したバイト数を取り除いたアドレスを、テキスト形式の文字列で返します。 構文
cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)
引数
  • x — バイナリ形式の IPv6 アドレス。FixedString(16) または IPv6
  • bytesToCutForIPv6 — IPv6 で切り取るバイト数。UInt8
  • bytesToCutForIPv4 — IPv4 で切り取るバイト数。UInt8
戻り値 指定したバイトを削除した、テキスト形式の IPv6 アドレスを含む文字列を返します。String 使用例
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

導入バージョン: v21.4.0 IP アドレスが、Classless Inter-Domain Routing (CIDR) 表記のネットワークに含まれているかどうかを判定します。 この関数は、文字列として表された IPv4 と IPv6 の両方のアドレス (およびネットワーク) を受け取ります。アドレスの IP バージョンと CIDR が一致しない場合は、0 を返します。 構文
isIPAddressInRange(address, prefix)
引数
  • address — IPv4 または IPv6 のアドレス。String
  • prefix — CIDR 形式の IPv4 または IPv6 ネットワークプレフィックス。String
戻り値 アドレスの IP バージョンと CIDR が一致する場合は 1、それ以外の場合は 0 を返します。UInt8 範囲内の IPv4 アドレス
Query
SELECT isIPAddressInRange('127.0.0.1', '127.0.0.0/8')
Response
1
範囲外のIPv4アドレス
Query
SELECT isIPAddressInRange('127.0.0.1', 'ffff::/16')
Response
0
範囲外のIPv6アドレス
Query
SELECT isIPAddressInRange('::ffff:192.168.0.1', '::ffff:192.168.0.4/128')
Response
0

isIPv4String

導入バージョン: v21.1.0 入力文字列が IPv4 アドレスかどうかを判定します。 IPv6 版については、isIPv6Stringを参照してください。 構文
isIPv4String(string)
引数
  • string — 判定対象の IP アドレス文字列。String
戻り値 string が IPv4 アドレスの場合は 1、それ以外の場合は 0 を返します。UInt8 使用例
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

導入バージョン: v21.1.0 入力文字列が IPv6 アドレスかどうかを判定します。 IPv4 版については isIPv4String を参照してください。 構文
isIPv6String(string)
引数
  • string — 確認対象の IP アドレス文字列。String
戻り値 string が IPv6 アドレスの場合は 1、それ以外の場合は 0 を返します。UInt8 使用例
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

導入バージョン: v20.1.0 IPv4 アドレスを表す文字列、または IPv4 アドレスの UInt32 形式を IPv4 型に変換します。 IPv4StringToNum 関数および IPv4NumToString 関数に似ていますが、入力引数として文字列型と符号なし整数型の両方をサポートしています。 構文
toIPv4(x)
引数 戻り値 IPv4 アドレスを返します。IPv4 使用例
Query
SELECT toIPv4('171.225.130.45');
Response
┌─toIPv4('171.225.130.45')─┐
│ 171.225.130.45           │
└──────────────────────────┘
IPv4StringToNum 関数および 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                 │
└───────────────────────────────────┴──────────────────────────┘
整数値からの変換
Query
SELECT toIPv4(2130706433);
Response
┌─toIPv4(2130706433)─┐
│ 127.0.0.1          │
└────────────────────┘

toIPv4OrDefault

導入バージョン: v22.3.0 IPv4 アドレスの文字列、または IPv4 アドレスを表す UInt32 形式の値を IPv4 型に変換します。 IPv4 アドレスのフォーマットが無効な場合は、0.0.0.0 (IPv4 の 0) または指定されたデフォルトの IPv4 アドレスを返します。 構文
toIPv4OrDefault(string[, default])
引数
  • string — 変換対象の IP アドレス文字列。String
  • default — 任意。string が無効な IPv4 アドレスの場合に返す値。IPv4
戻り値 文字列から変換された IPv4 アドレス、または変換に失敗した場合はデフォルト値を返します。IPv4 有効な IPv4 文字列と無効な IPv4 文字列
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

導入バージョン: v22.3.0 入力値を IPv4 型の値に変換します。エラーが発生した場合は NULL を返します。 toIPv4 と同様ですが、変換エラー時に例外を発生させる代わりに NULL を返します。 サポートされる引数:
  • ドット区切りの 10 進表記による IPv4 アドレスの文字列表現。
  • IPv4 アドレスの整数表現。
サポートされない引数 (NULL を返します) :
  • 無効な IP アドレス形式。
  • IPv6 アドレス。
  • 範囲外の値。
  • 形式が不正なアドレス。
構文
toIPv4OrNull(x)
引数
  • x — IPv4 アドレスを表す文字列または整数形式の値。String または Integer
戻り値 成功した場合は IPv4 アドレスを返し、失敗した場合は NULL を返します。IPv4 または NULL 使用例
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

導入バージョン: v23.1.0 入力値を IPv4 型の値に変換しますが、エラー時にはゼロの IPv4 アドレスを返します。 toIPv4 と同様ですが、変換エラー時に例外を発生させる代わりに、ゼロの IPv4 アドレス (0.0.0.0) を返します。 サポートされる引数:
  • ドット区切りの 10 進表記による IPv4 アドレスの文字列表現。
  • IPv4 アドレスの整数表現。
サポートされない引数 (ゼロの IPv4 アドレスを返します) :
  • 無効な IP アドレスのフォーマット。
  • IPv6 アドレス。
  • 範囲外の値。
構文
toIPv4OrZero(x)
引数
  • x — IPv4 アドレスを表す文字列または整数。String または Integer
戻り値 成功した場合は IPv4 アドレスを返し、失敗した場合はゼロの IPv4 アドレス (0.0.0.0) を返します。IPv4 使用例
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

導入バージョン: v20.1.0 文字列、または IPv6 アドレスを表す UInt128 形式の値を IPv6 型に変換します。 文字列の場合、IPv6 アドレスの形式が無効であれば、空の値を返します。 IPv6 アドレスをバイナリ形式 (つまり FixedString(16)) との間で相互変換する IPv6StringToNum 関数および IPv6NumToString 関数と似ています。 入力文字列に有効な IPv4 アドレスが含まれている場合は、その IPv4 アドレスに対応する IPv6 表現が返されます。 構文
toIPv6(x)
引数 戻り値 IPv6 アドレスを返します。IPv6 使用例
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 │
└───────────────────────────────────┴──────────────────────────────────┘
IPv4からIPv6へのマッピング
Query
SELECT toIPv6('127.0.0.1');
Response
┌─toIPv6('127.0.0.1')─┐
│ ::ffff:127.0.0.1    │
└─────────────────────┘

toIPv6OrDefault

導入バージョン: v22.3.0 文字列または IPv6 アドレスの UInt128 形式を IPv6 型に変換します。 IPv6 アドレスの形式が無効な場合は、:: (0 IPv6) または指定したデフォルトの IPv6 を返します。 構文
toIPv6OrDefault(string[, default])
Arguments
  • string — 変換する IP アドレス文字列。 - default — 任意。string のフォーマットが無効な場合に返す値です。
戻り値 IPv6 アドレスを返します。引数 string のフォーマットが無効な場合は、:: または指定された任意のデフォルト値を返します。IPv6 Examples 有効な IPv6 文字列と無効な IPv6 文字列
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

導入バージョン: v22.3.0 入力値を IPv6 型の値に変換します。エラーが発生した場合は NULL を返します。 toIPv6 と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。 サポートされる引数:
  • 標準表記の IPv6 アドレスの文字列表現。
  • IPv4 アドレスの文字列表現 (IPv4 マップド IPv6 に変換されます) 。
  • IPv6 アドレスのバイナリ表現。
サポートされない引数 (NULL を返します) :
  • 無効な IP アドレス形式。
  • 不正な形式の IPv6 アドレス。
  • 範囲外の値。
  • 無効な表記。
構文
toIPv6OrNull(x)
引数
  • x — IPv6 または IPv4 アドレスの文字列表現。String
戻り値 成功した場合は IPv6 アドレスを返し、失敗した場合は NULL を返します。IPv6 または NULL 使用例
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

導入バージョン: v23.1.0 入力値を IPv6 型の値に変換します。エラーが発生した場合は、ゼロ IPv6 アドレスを返します。 toIPv6 と似ていますが、変換エラー時に例外をスローする代わりに、ゼロ IPv6 アドレス (::) を返します。 サポートされる引数:
  • 標準表記の IPv6 アドレスの文字列表現。
  • IPv4 アドレスの文字列表現 (IPv4 マップド IPv6 に変換されます) 。
  • IPv6 アドレスのバイナリ表現。
サポートされない引数 (ゼロ IPv6 を返します) :
  • 無効な IP アドレス形式。
  • 不正な形式の IPv6 アドレス。
  • 範囲外の値。
構文
toIPv6OrZero(x)
引数
  • x — IPv6 または IPv4 アドレスの文字列表現。String
戻り値 成功した場合は IPv6 アドレスを返し、失敗した場合はゼロ IPv6 アドレス (::) を返します。IPv6 使用例
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        │ ::           │
└─────────────────────────────────────┴──────────────┘
最終更新日 2026年6月10日