최종 수정: 에
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