IPV6_STRING_TO_NUM_OR_DEFAULT
ipv6_string_to_num_or_default
説明
IPv6NumToStringの逆関数で、IPアドレス文字列を受け取り、IPv6アドレスをバイナリ形式で返します。
構文
IPV6_STRING_TO_NUM_OR_DEFAULT(<ipv6_string>)
パラメータ
<ipv6_string>: 文字列型のIPv6アドレス
戻り値
戻り値の型: VARCHAR(16バイトバイナリ)
戻り値の意味:
- IPv6の16バイトバイナリエンコーディングを返します
- 入力がNULLの場合、すべてゼロの16バイトバイナリを返します
- 無効なIPアドレスの場合、すべてゼロの16バイトバイナリを返します(例外はスローされません)
- 入力が有効なIPv4テキストの場合、等価なIPv6アドレス(
::ffff:<ipv4>)を返します
使用上の注意
- この関数は例外をスローしません。無効な入力は一律にすべてゼロの16バイトバイナリを返します
- IPv6テキストの省略記法をサポートします。IPv4テキストはIPv6表現にマッピングされます
- 耐障害性のあるバッチ変換に適しています
例
IPv6テキスト 1111::ffff を16バイトバイナリに変換します(16進数で表示)。
select hex(ipv6_string_to_num_or_default('1111::ffff')) as v6;
+----------------------------------+
| v6 |
+----------------------------------+
| 1111000000000000000000000000FFFF |
+----------------------------------+
IPv4テキストは自動的にIPv6(::ffff:<ipv4>)にマップされ、16バイトのバイナリとして返されます。
select hex(ipv6_string_to_num_or_default('192.168.0.1')) as mapped;
+----------------------------------+
| mapped |
+----------------------------------+
| 00000000000000000000FFFFC0A80001 |
+----------------------------------+
パラメータをNULLとすると、すべてゼロの16バイトバイナリが返される
select hex(ipv6_string_to_num_or_default(NULL)) as null_result;
+----------------------------------+
| null_result |
+----------------------------------+
| 00000000000000000000000000000000 |
+----------------------------------+
無効な入力は、すべてゼロの16バイトバイナリを返します(例外はスローされません)。
select hex(ipv6_string_to_num_or_default('notaaddress')) as invalid;
+----------------------------------+
| invalid |
+----------------------------------+
| 00000000000000000000000000000000 |
+----------------------------------+
キーワード
IPV6_STRING_TO_NUM_OR_DEFAULT