メインコンテンツまでスキップ
バージョン: 26.x

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の場合、すべて0の16バイトバイナリを返す
  • 無効なIPアドレスの場合、すべて0の16バイトバイナリを返す(例外はスローされない)
  • 入力が有効なIPv4テキストの場合、等価なIPv6アドレス(::ffff:<ipv4>)を返す

使用上の注意

  • この関数は例外をスローしません。無効な入力は一律にすべて0の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 |
+----------------------------------+

Keywords

IPV6_STRING_TO_NUM_OR_DEFAULT