본문으로 건너뛰기
최종 수정: 에

IPV6_STRING_TO_NUM_OR_DEFAULT

설명​

IPV6_NUM_TO_STRING의 역함수로, IP 주소 문자열을 받아 IPv6 주소를 바이너리 형식으로 반환합니다.

구문​

IPV6_STRING_TO_NUM_OR_DEFAULT(<ipv6_string>)

매개변수​

  • <ipv6_string>: 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