IPv4CIDRToRange
導入バージョン: v20.1.0
IPv4 アドレスとその Classless Inter-Domain Routing (CIDR) プレフィックス長を受け取り、そのサブネットのアドレス範囲を、2 つの IPv4 値からなるタプルとして返します。つまり、そのサブネットの先頭アドレスと末尾アドレスです。
IPv6 版については IPv6CIDRToRange を参照してください。
構文
IPv4CIDRToRange(ipv4, cidr)引数
戻り値
サブネットの範囲を表す 2 つの IPv4 アドレスからなるタプルを返します。Tuple(IPv4, IPv4)
例
使用例
SELECT IPv4CIDRToRange(toIPv4('192.168.5.2'), 16);┌─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
例
使用例
SELECT IPv4NumToString(3232235521)192.168.0.1IPv4NumToStringClassC
導入バージョン: v1.1.0
32 ビット整数を、ドット区切りの 10 進表記 (A.B.C.D 形式) の IPv4 アドレスの文字列表現に変換します。
IPv4NumToString と似ていますが、最後のオクテットの代わりに xxx を使用します。
構文
IPv4NumToStringClassC(num)引数
num— UInt32 値として表された IPv4 アドレス。UInt32
戻り値
最後のオクテットを xxx に置き換えた IPv4 アドレス文字列を返します。String
例
集計を用いた基本例
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
導入バージョン: v1.1.0
ドット区切りの 10 進表記 (A.B.C.D 形式) の IPv4 アドレス文字列を、対応する 32 ビット整数表現に変換します (IPv4NumToString の逆です) 。
IPv4 アドレスの形式が無効な場合は、例外が発生します。
構文
IPv4StringToNum(string)別名: INET_ATON
引数
string— IPv4 アドレス文字列。String
戻り値
IPv4 アドレスを返します。UInt32
例
使用例
SELECT IPv4StringToNum('192.168.0.1')3232235521IPv4StringToNumOrDefault
導入バージョン: v22.3.0
ドット区切りの10進表記 (A.B.C.D 形式) の IPv4 アドレス文字列を、対応する 32 ビット整数表現に変換します。IPv4 アドレスの形式が無効な場合は、0 を返します。
構文
IPv4StringToNumOrDefault(string)引数
string— IPv4 アドレス文字列。String
戻り値
IPv4アドレスを返します。無効な場合は 0 を返します。UInt32
例
無効なアドレスの例
SELECT
IPv4StringToNumOrDefault('127.0.0.1') AS valid,
IPv4StringToNumOrDefault('invalid') AS invalid;┌──────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)
例
無効なアドレスの例
SELECT
IPv4StringToNumOrNull('127.0.0.1') AS valid,
IPv4StringToNumOrNull('invalid') AS invalid;┌──────valid─┬─invalid─┐
│ 2130706433 │ ᴺᵁᴸᴸ │
└────────────┴─────────┘IPv4ToIPv6
導入バージョン: v1.1.0
(ビッグエンディアンの) 32ビット整数を IPv4 アドレスとして解釈し、さらにそれを対応する IPv6 アドレスとして FixedString(16) フォーマットで表します。
構文
IPv4ToIPv6(x)引数
x— IPv4アドレス。UInt32
戻り値
バイナリ形式のIPv6アドレスを返します。FixedString(16)
例
使用例
SELECT IPv6NumToString(IPv4ToIPv6(IPv4StringToNum('192.168.0.1'))) AS addr;┌─addr───────────────┐
│ ::ffff:192.168.0.1 │
└────────────────────┘IPv6CIDRToRange
導入バージョン: v20.1.0
IPv6 アドレスとその Classless Inter-Domain Routing (CIDR) のプレフィックス長を受け取り、そのサブネットのアドレス範囲を、サブネット内の最小アドレスと最大アドレスからなる 2 つの IPv6 値のタプルとして返します。
IPv4 版については IPv4CIDRToRange を参照してください。
構文
IPv6CIDRToRange(ipv6, cidr)引数
戻り値
サブネットの範囲を表す 2 つの IPv6 アドレスからなるタプルを返します。Tuple(IPv6, IPv6)
例
使用例
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
導入バージョン: v1.1.0
IPv6 アドレスをバイナリ形式 (FixedString(16)) から標準的なテキスト表現に変換します。
IPv4 マップド IPv6 アドレスは、::ffff:111.222.33.44 の形式で表示されます。
構文
IPv6NumToString(x)別名: INET6_NTOA
引数
x— バイナリ形式の IPv6 アドレス。FixedString(16)またはIPv6
戻り値
テキスト形式の IPv6 アドレスを表す文字列を返します。String
例
使用例
SELECT IPv6NumToString(toFixedString(unhex('2A0206B8000000000000000000000011'), 16)) AS addr;┌─addr─────────┐
│ 2a02:6b8::11 │
└──────────────┘hits を用いた 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 │
└───────────────────────┴───┘IPv6マップドIPv4アドレス
-- 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
導入バージョン: 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)
例
基本例
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
導入バージョン: v22.3.0
IPv6 アドレスを標準的なテキスト表現からバイナリ形式 (FixedString(16)) に変換します。
::ffff:111.222.33.44. 形式の IPv4 マップド IPv6 アドレスを受け付けます。
IPv6 アドレスの形式が無効な場合は、デフォルト値 :: を返します。
構文
IPv6StringToNumOrDefault(string)引数
string— IPv6 アドレスの文字列。String
戻り値
バイナリ形式の IPv6 アドレス。無効な場合は、ゼロで埋められた FixedString(16)。FixedString(16)
例
無効なアドレスの基本例
SELECT
IPv6NumToString(IPv6StringToNumOrDefault('2001:db8::1')) AS valid,
IPv6NumToString(IPv6StringToNumOrDefault('invalid')) AS invalid;┌─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))
例
無効なアドレスを使った基本例
SELECT
IPv6NumToString(IPv6StringToNumOrNull('2001:db8::1')) AS valid,
IPv6StringToNumOrNull('invalid') AS invalid;┌─valid───────┬─invalid─┐
│ 2001:db8::1 │ ᴺᵁᴸᴸ │
└─────────────┴─────────┘cutIPv6
導入バージョン: v1.1.0
IPv6 アドレスをバイナリ形式で格納した FixedString(16) 型の値を受け取ります。
指定したバイト数を取り除いたアドレスを、テキスト形式の文字列で返します。
構文
cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)引数
x— バイナリ形式の IPv6 アドレス。FixedString(16)またはIPv6bytesToCutForIPv6— IPv6 で切り取るバイト数。UInt8bytesToCutForIPv4— IPv4 で切り取るバイト数。UInt8
戻り値
指定したバイトを削除した、テキスト形式の IPv6 アドレスを含む文字列を返します。String
例
使用例
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
導入バージョン: v21.4.0
IP アドレスが、Classless Inter-Domain Routing (CIDR) 表記のネットワークに含まれているかどうかを判定します。
この関数は、文字列として表された IPv4 と IPv6 の両方のアドレス (およびネットワーク) を受け取ります。アドレスの IP バージョンと CIDR が一致しない場合は、0 を返します。
構文
isIPAddressInRange(address, prefix)引数
戻り値
アドレスの IP バージョンと CIDR が一致する場合は 1、それ以外の場合は 0 を返します。UInt8
例
範囲内の IPv4 アドレス
SELECT isIPAddressInRange('127.0.0.1', '127.0.0.0/8')1範囲外のIPv4アドレス
SELECT isIPAddressInRange('127.0.0.1', 'ffff::/16')0範囲外のIPv6アドレス
SELECT isIPAddressInRange('::ffff:192.168.0.1', '::ffff:192.168.0.4/128')0isIPv4String
導入バージョン: v21.1.0
入力文字列が IPv4 アドレスかどうかを判定します。
IPv6 版については、isIPv6Stringを参照してください。
構文
isIPv4String(string)引数
string— 判定対象の IP アドレス文字列。String
戻り値
string が IPv4 アドレスの場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
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
導入バージョン: v21.1.0
入力文字列が IPv6 アドレスかどうかを判定します。
IPv4 版については isIPv4String を参照してください。
構文
isIPv6String(string)引数
string— 確認対象の IP アドレス文字列。String
戻り値
string が IPv6 アドレスの場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
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
導入バージョン: v20.1.0
IPv4 アドレスを表す文字列、または IPv4 アドレスの UInt32 形式を IPv4 型に変換します。
IPv4StringToNum 関数および IPv4NumToString 関数に似ていますが、入力引数として文字列型と符号なし整数型の両方をサポートしています。
構文
toIPv4(x)引数
x— IPv4 アドレスを表すStringまたはUInt8/16/32
戻り値
IPv4 アドレスを返します。IPv4
例
使用例
SELECT toIPv4('171.225.130.45');┌─toIPv4('171.225.130.45')─┐
│ 171.225.130.45 │
└──────────────────────────┘IPv4StringToNum 関数および 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 │
└───────────────────────────────────┴──────────────────────────┘整数値からの変換
SELECT toIPv4(2130706433);┌─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])引数
戻り値
文字列から変換された IPv4 アドレス、または変換に失敗した場合はデフォルト値を返します。IPv4
例
有効な IPv4 文字列と無効な IPv4 文字列
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
導入バージョン: v22.3.0
入力値を IPv4 型の値に変換します。エラーが発生した場合は NULL を返します。
toIPv4 と同様ですが、変換エラー時に例外を発生させる代わりに NULL を返します。
サポートされる引数:
- ドット区切りの 10 進表記による IPv4 アドレスの文字列表現。
- IPv4 アドレスの整数表現。
サポートされない引数 (NULL を返します) :
- 無効な IP アドレス形式。
- IPv6 アドレス。
- 範囲外の値。
- 形式が不正なアドレス。
構文
toIPv4OrNull(x)引数
戻り値
成功した場合は IPv4 アドレスを返し、失敗した場合は NULL を返します。IPv4 または NULL
例
使用例
SELECT
toIPv4OrNull('192.168.1.1') AS valid_ip,
toIPv4OrNull('invalid.ip') AS invalid_ip┌─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)引数
戻り値
成功した場合は IPv4 アドレスを返し、失敗した場合はゼロの IPv4 アドレス (0.0.0.0) を返します。IPv4
例
使用例
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
導入バージョン: v20.1.0
文字列、または IPv6 アドレスを表す UInt128 形式の値を IPv6 型に変換します。
文字列の場合、IPv6 アドレスの形式が無効であれば、空の値を返します。
IPv6 アドレスをバイナリ形式 (つまり FixedString(16)) との間で相互変換する IPv6StringToNum 関数および IPv6NumToString 関数と似ています。
入力文字列に有効な IPv4 アドレスが含まれている場合は、その IPv4 アドレスに対応する IPv6 表現が返されます。
構文
toIPv6(x)引数
戻り値
IPv6 アドレスを返します。IPv6
例
使用例
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 │
└───────────────────────────────────┴──────────────────────────────────┘IPv4からIPv6へのマッピング
SELECT toIPv6('127.0.0.1');┌─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 文字列
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
導入バージョン: 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
例
使用例
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
導入バージョン: v23.1.0
入力値を IPv6 型の値に変換します。エラーが発生した場合は、ゼロ IPv6 アドレスを返します。
toIPv6 と似ていますが、変換エラー時に例外を発生させる代わりに、ゼロ IPv6 アドレス (::) を返します。
サポートされる引数:
- 標準表記の IPv6 アドレスの文字列表現。
- IPv4 アドレスの文字列表現 (IPv4 マップド IPv6 に変換されます) 。
- IPv6 アドレスのバイナリ表現。
サポートされない引数 (ゼロ IPv6 を返します) :
- 無効な IP アドレス形式。
- 不正な形式の IPv6 アドレス。
- 範囲外の値。
構文
toIPv6OrZero(x)引数
x— IPv6 または IPv4 アドレスの文字列表現。String
戻り値
成功した場合は IPv6 アドレスを返し、失敗した場合はゼロ IPv6 アドレス (::) を返します。IPv6
例
使用例
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 │ :: │
└──────────────────────────────┴──────────────┘