メインコンテンツまでスキップ
に最終更新

IPV6_STRING_TO_NUM_OR_DEFAULT

説明​

IPV6_NUM_TO_STRING の逆関数です。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 バイトのバイナリ値に変換します(十六進数で表示)。

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