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

IPV4_CIDR_TO_RANGE

설명​

IPv4 주소와 CIDR 접두사 길이를 기반으로 네트워크 세그먼트의 최소 및 최대 IPv4 주소를 계산하고, 두 IPv4 주소를 포함하는 struct를 반환합니다.

구문​

IPV4_CIDR_TO_RANGE(<ipv4_address>, <cidr_prefix>)

매개변수​

매개변수설명
<ipv4_address>IPv4 주소입니다. TO_IPV4를 사용하여 주소 문자열을 IPv4로 변환합니다. INET_ATON은 BIGINT를 반환하므로 이 매개변수에 사용할 수 없습니다.
<cidr_prefix>CIDR 접두사 길이입니다. SMALLINT 타입이며 범위는 0-32입니다.

반환값​

반환 타입: STRUCT<min: IPv4, max: IPv4>

매개변수 중 하나라도 NULL이면 NULL을 반환합니다.

반환값의 의미:

  • 두 필드를 포함하는 struct를 반환합니다.
    • min: 네트워크 세그먼트의 최소 IPv4 주소
    • max: 네트워크 세그먼트의 최대 IPv4 주소

사용 시 참고 사항​

  • CIDR 접두사 길이는 0-32 범위 내에 있어야 합니다.
  • 네트워크 마스크를 기준으로 계산하며, 최소 주소는 모든 호스트 비트를 영으로, 최대 주소는 모든 호스트 비트를 일로 설정합니다.
  • 상수 매개변수와 컬럼 매개변수의 다양한 조합을 지원합니다.

예제​

/24 네트워크 세그먼트의 주소 범위를 계산합니다.

SELECT ipv4_cidr_to_range(TO_IPV4('192.168.1.1'), 24) as range;
+------------------------------------------------+
| range |
+------------------------------------------------+
| {"min": "192.168.1.0", "max": "192.168.1.255"} |
+------------------------------------------------+

/16 네트워크 세그먼트의 주소 범위를 계산합니다.

SELECT ipv4_cidr_to_range(TO_IPV4('10.0.0.1'), 16) as range;
+----------------------------------------------+
| range |
+----------------------------------------------+
| {"min": "10.0.0.0", "max": "10.0.255.255"} |
+----------------------------------------------+

struct의 특정 필드에 접근합니다.

SELECT 
ipv4_cidr_to_range(TO_IPV4('172.16.1.1'), 24).min as min_ip,
ipv4_cidr_to_range(TO_IPV4('172.16.1.1'), 24).max as max_ip;
+------------+--------------+
| min_ip | max_ip |
+------------+--------------+
| 172.16.1.0 | 172.16.1.255 |
+------------+--------------+

CIDR 접두사가 범위를 벗어나면 예외가 발생합니다.

SELECT ipv4_cidr_to_range(TO_IPV4('192.168.1.1'), 33);
ERROR 1105 (HY000): errCode = 2, detailMessage = (...)[INVALID_ARGUMENT]Illegal cidr value '33'

NULL 입력:

SELECT ipv4_cidr_to_range(NULL, 24) AS null_address,
ipv4_cidr_to_range(TO_IPV4('192.168.1.1'), NULL) AS null_prefix;
+--------------+-------------+
| null_address | null_prefix |
+--------------+-------------+
| NULL | NULL |
+--------------+-------------+

키워드​

IPV4_CIDR_TO_RANGE