메인 콘텐츠로 건너뛰기

IPv4CIDRToRange

도입 버전: v20.1.0 CIDR(Classless Inter-Domain Routing) prefix 길이가 지정된 IPv4 주소를 받아, 해당 서브넷의 주소 범위를 2개의 IPv4 값으로 이루어진 튜플로 반환합니다. 즉, 해당 서브넷의 첫 번째 주소와 마지막 주소입니다. IPv6 버전은 IPv6CIDRToRange를 참조하십시오. 구문
IPv4CIDRToRange(ipv4, cidr)
인수
  • ipv4 — IPv4 주소입니다. IPv4 또는 String
  • cidr — CIDR 값입니다. UInt8
반환 값 서브넷 범위를 나타내는 두 개의 IPv4 주소가 포함된 튜플을 반환합니다. Tuple(IPv4, IPv4) 예시 사용 예시
Query
SELECT IPv4CIDRToRange(toIPv4('192.168.5.2'), 16);
Response
┌─IPv4CIDRToRange(toIPv4('192.168.5.2'), 16)─┐
│ ('192.168.0.0','192.168.255.255')          │
└────────────────────────────────────────────┘

IPv4NumToString

도입 버전: v1.1.0 32비트 정수를 점으로 구분된 10진 표기법(A.B.C.D 포맷)의 IPv4 주소 문자열로 변환합니다. 입력값은 빅 엔디언 바이트 순서로 해석합니다. 구문
IPv4NumToString(num)
별칭: INET_NTOA 인수
  • num — UInt32 값으로 표현된 IPv4 주소입니다. UInt32
반환 값 MAC 주소를 나타내는 숫자를 반환하며, 형식이 올바르지 않으면 0을 반환합니다. String 예시 사용 예시
Query
IPv4NumToString(3232235521)
Response
192.168.0.1

IPv4NumToStringClassC

도입 버전: v1.1.0 32비트 정수를 점으로 구분된 10진 표기(A.B.C.D 포맷)의 IPv4 주소 문자열로 변환합니다. IPv4NumToString과 비슷하지만 마지막 옥텟 대신 xxx를 사용합니다. 구문
IPv4NumToStringClassC(num)
인수
  • num — UInt32 숫자로 표현된 IPv4 주소입니다. UInt32
반환 값 마지막 옥텟을 xxx로 대체한 IPv4 주소 문자열을 반환합니다. String 예시 집계를 사용한 기본 예시
Query
SELECT
    IPv4NumToStringClassC(ClientIP) AS k,
    count() AS c
FROM test.hits
GROUP BY k
ORDER BY c DESC
LIMIT 10
Response
┌─k──────────────┬─────c─┐
│ 83.149.9.xxx   │ 26238 │
│ 217.118.81.xxx │ 26074 │
│ 213.87.129.xxx │ 25481 │
│ 83.149.8.xxx   │ 24984 │
│ 217.118.83.xxx │ 22797 │
│ 78.25.120.xxx  │ 22354 │
│ 213.87.131.xxx │ 21285 │
│ 78.25.121.xxx  │ 20887 │
│ 188.162.65.xxx │ 19694 │
│ 83.149.48.xxx  │ 17406 │
└────────────────┴───────┘

IPv4StringToNum

도입 버전: v1.1.0 점으로 구분된 10진 표기법(A.B.C.D 포맷)의 IPv4 주소 문자열을 해당하는 32비트 정수 값으로 변환합니다. (IPv4NumToString의 반대 기능입니다.) IPv4 주소 포맷이 올바르지 않으면 예외가 발생합니다. 구문
IPv4StringToNum(string)
별칭: INET_ATON 인수
  • string — IPv4 주소 문자열입니다. String
반환 값 IPv4 주소를 반환합니다. UInt32 예시 사용 예시
Query
IPv4StringToNum('192.168.0.1')
Response
3232235521

IPv4StringToNumOrDefault

도입 버전: v22.3.0 점으로 구분된 10진 표기법(A.B.C.D 포맷)의 IPv4 주소 문자열을 해당하는 32비트 정수 값으로 변환합니다. 단, IPv4 주소 형식이 올바르지 않으면 0을 반환합니다. 구문
IPv4StringToNumOrDefault(string)
인수
  • string — IPv4 주소 문자열입니다. String
반환 값 IPv4 주소를 반환합니다. 유효하지 않으면 0을 반환합니다. UInt32 예시 유효하지 않은 주소 예시
Query
SELECT
    IPv4StringToNumOrDefault('127.0.0.1') AS valid,
    IPv4StringToNumOrDefault('invalid') AS invalid;
Response
┌──────valid─┬─invalid─┐
│ 2130706433 │       0 │
└────────────┴─────────┘

IPv4StringToNumOrNull

도입 버전: v22.3.0 32비트 정수를 점으로 구분된 10진 표기법(A.B.C.D 포맷)의 IPv4 주소 문자열로 변환합니다. 단, IPv4 주소 포맷이 올바르지 않으면 NULL을 반환합니다. 구문
IPv4StringToNumOrNull(string)
인수
  • string — IPv4 주소 문자열입니다. String
반환 값 IPv4 주소를 반환합니다. 유효하지 않은 경우 NULL을 반환합니다. Nullable(UInt32) 예시 유효하지 않은 주소 예시
Query
SELECT
IPv4StringToNumOrNull('127.0.0.1') AS valid,
IPv4StringToNumOrNull('invalid') AS invalid;
Response
┌──────valid─┬─invalid─┐
│ 2130706433 │    ᴺᵁᴸᴸ │
└────────────┴─────────┘

IPv4ToIPv6

도입 버전: v1.1.0 (빅 엔디언) 32비트 숫자를 IPv4 주소로 해석한 후, 이를 FixedString(16) 포맷의 해당 IPv6 주소로 해석합니다. 구문
IPv4ToIPv6(x)
인수 반환 값 바이너리 형식의 IPv6 주소를 반환합니다. FixedString(16) 예시 사용 예시
Query
SELECT IPv6NumToString(IPv4ToIPv6(IPv4StringToNum('192.168.0.1'))) AS addr;
Response
┌─addr───────────────┐
│ ::ffff:192.168.0.1 │
└────────────────────┘

IPv6CIDRToRange

도입 버전: v20.1.0 CIDR(Classless Inter-Domain Routing) prefix 길이가 지정된 IPv6 주소를 받아, 해당 서브넷의 주소 범위를 가장 낮은 주소와 가장 높은 주소로 이루어진 두 개의 IPv6 값 튜플로 반환합니다. IPv4 버전은 IPv4CIDRToRange를 참조하십시오. 구문
IPv6CIDRToRange(ipv6, cidr)
인수 반환 값 서브넷 범위를 나타내는 두 개의 IPv6 주소로 이루어진 튜플을 반환합니다. Tuple(IPv6, IPv6) 예시 사용 예시
Query
SELECT IPv6CIDRToRange(toIPv6('2001:0db8:0000:85a3:0000:0000:ac1f:8001'), 32);
Response
┌─IPv6CIDRToRange(toIPv6('2001:0db8:0000:85a3:0000:0000:ac1f:8001'), 32)─┐
│ ('2001:db8::','2001:db8:ffff:ffff:ffff:ffff:ffff:ffff')                │
└────────────────────────────────────────────────────────────────────────┘

IPv6NumToString

도입 버전: v1.1.0 IPv6 주소를 바이너리 형식(FixedString(16))에서 표준 텍스트 표현으로 변환합니다. IPv4-mapped IPv6 주소는 ::ffff:111.222.33.44 형식으로 표시됩니다. 구문
IPv6NumToString(x)
별칭: INET6_NTOA 인수 반환 값 텍스트 형식의 IPv6 주소 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT IPv6NumToString(toFixedString(unhex('2A0206B8000000000000000000000011'), 16)) AS addr;
Response
┌─addr─────────┐
│ 2a02:6b8::11 │
└──────────────┘
hits 분석에서의 IPv6
Query
SELECT
    IPv6NumToString(ClientIP6 AS k),
    count() AS c
FROM hits_all
WHERE EventDate = today() AND substring(ClientIP6, 1, 12) != unhex('00000000000000000000FFFF')
GROUP BY k
ORDER BY c DESC
LIMIT 10
Response
┌─IPv6NumToString(ClientIP6)──────────────┬─────c─┐
│ 2a02:2168:aaa:bbbb::2                   │ 24695 │
│ 2a02:2698:abcd:abcd:abcd:abcd:8888:5555 │ 22408 │
│ 2a02:6b8:0:fff::ff                      │ 16389 │
│ 2a01:4f8:111:6666::2                    │ 16016 │
│ 2a02:2168:888:222::1                    │ 15896 │
│ 2a01:7e00::ffff:ffff:ffff:222           │ 14774 │
│ 2a02:8109:eee:ee:eeee:eeee:eeee:eeee    │ 14443 │
│ 2a02:810b:8888:888:8888:8888:8888:8888  │ 14345 │
│ 2a02:6b8:0:444:4444:4444:4444:4444      │ 14279 │
│ 2a01:7e00::ffff:ffff:ffff:ffff          │ 13880 │
└─────────────────────────────────────────┴───────┘
IPv6에 매핑된 IPv4 주소
Query
SELECT
    IPv6NumToString(ClientIP6 AS k),
    count() AS c
FROM hits_all
WHERE EventDate = today()
GROUP BY k
ORDER BY c DESC
LIMIT 10
Response
┌─IPv6NumToString(ClientIP6)─┬──────c─┐
│ ::ffff:94.26.111.111       │ 747440 │
│ ::ffff:37.143.222.4        │ 529483 │
│ ::ffff:5.166.111.99        │ 317707 │
│ ::ffff:46.38.11.77         │ 263086 │
│ ::ffff:79.105.111.111      │ 186611 │
│ ::ffff:93.92.111.88        │ 176773 │
│ ::ffff:84.53.111.33        │ 158709 │
│ ::ffff:217.118.11.22       │ 154004 │
│ ::ffff:217.118.11.33       │ 148449 │
│ ::ffff:217.118.11.44       │ 148243 │
└────────────────────────────┴────────┘

IPv6StringToNum

도입 버전: v1.1.0 IPv6 주소를 표준 텍스트 표현에서 바이너리 형식(FixedString(16))으로 변환합니다. ::ffff:111.222.33.44. 형식의 IPv4-mapped IPv6 주소도 허용합니다. IPv6 주소 형식이 올바르지 않으면 예외가 발생합니다. 입력 문자열에 유효한 IPv4 주소가 포함되어 있으면 해당 주소에 대응하는 IPv6 표현을 반환합니다. HEX는 대문자와 소문자를 모두 사용할 수 있습니다. 구문
IPv6StringToNum(string)
별칭: INET6_ATON 인수
  • string — IPv6 주소 문자열. String
반환 값 IPv6 주소를 바이너리 형식으로 반환합니다. FixedString(16) 예시 기본 예시
Query
SELECT addr, cutIPv6(IPv6StringToNum(addr), 0, 0) FROM (SELECT ['notaddress', '127.0.0.1', '1111::ffff'] AS addr) ARRAY JOIN addr;
Response
┌─addr───────┬─cutIPv6(IPv6StringToNum(addr), 0, 0)─┐
│ notaddress │ ::                                   │
│ 127.0.0.1  │ ::ffff:127.0.0.1                     │
│ 1111::ffff │ 1111::ffff                           │
└────────────┴──────────────────────────────────────┘

IPv6StringToNumOrDefault

도입 버전: v22.3.0 IPv6 주소를 표준 텍스트 표현에서 바이너리 형식(FixedString(16))으로 변환합니다. ::ffff:111.222.33.44. 포맷의 IPv4-mapped IPv6 주소를 허용합니다. IPv6 주소의 포맷이 올바르지 않으면 기본값 ::를 반환합니다. 구문
IPv6StringToNumOrDefault(string)
인수
  • string — IPv6 주소 문자열입니다. String
반환 값 바이너리 형식의 IPv6 주소 또는 유효하지 않은 경우 0으로 채워진 FixedString(16)입니다. FixedString(16) 예시 유효하지 않은 주소에 대한 기본 예시
Query
SELECT
    IPv6NumToString(IPv6StringToNumOrDefault('2001:db8::1')) AS valid,
    IPv6NumToString(IPv6StringToNumOrDefault('invalid')) AS invalid;
Response
┌─valid───────┬─invalid─┐
│ 2001:db8::1 │ ::      │
└─────────────┴─────────┘

IPv6StringToNumOrNull

도입 버전: v22.3.0 IPv6 주소를 표준 텍스트 표현에서 바이너리 형식(FixedString(16))으로 변환합니다. ::ffff:111.222.33.44. 형식의 IPv4-mapped IPv6 주소를 허용합니다. IPv6 주소 형식이 올바르지 않으면 NULL을 반환합니다. 구문
IPv6StringToNumOrNull(string)
인수
  • string — IPv6 주소 문자열입니다. String
반환 값 바이너리 형식의 IPv6 주소를 반환하며, 유효하지 않은 경우 NULL을 반환합니다. Nullable(FixedString(16)) 예시 유효하지 않은 주소를 사용하는 기본 예시
Query
SELECT
    IPv6NumToString(IPv6StringToNumOrNull('2001:db8::1')) AS valid,
    IPv6StringToNumOrNull('invalid') AS invalid;
Response
┌─valid───────┬─invalid─┐
│ 2001:db8::1 │    ᴺᵁᴸᴸ │
└─────────────┴─────────┘

cutIPv6

도입 버전: v1.1.0 바이너리 형식의 IPv6 주소를 담은 FixedString(16) 값을 받습니다. 지정된 바이트 수를 제거한 주소를 텍스트 포맷의 문자열로 반환합니다. 구문
cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)
인수
  • x — 바이너리 형식의 IPv6 주소입니다. FixedString(16) 또는 IPv6
  • bytesToCutForIPv6 — IPv6에서 잘라낼 바이트 수입니다. UInt8
  • bytesToCutForIPv4 — IPv4에서 잘라낼 바이트 수입니다. UInt8
반환 값 지정된 바이트가 제거된 텍스트 형식의 IPv6 주소를 담은 문자열을 반환합니다. String 예시 사용 예시
Query
WITH
    IPv6StringToNum('2001:0DB8:AC10:FE01:FEED:BABE:CAFE:F00D') AS ipv6,
    IPv4ToIPv6(IPv4StringToNum('192.168.0.1')) AS ipv4
SELECT
    cutIPv6(ipv6, 2, 0),
    cutIPv6(ipv4, 0, 2)
Response
┌─cutIPv6(ipv6, 2, 0)─────────────────┬─cutIPv6(ipv4, 0, 2)─┐
│ 2001:db8:ac10:fe01:feed:babe:cafe:0 │ ::ffff:192.168.0.0  │
└─────────────────────────────────────┴─────────────────────┘

isIPAddressInRange

도입 버전: v21.4.0 IP 주소가 Classless Inter-Domain Routing (CIDR) 표기법으로 나타낸 네트워크에 포함되는지 확인합니다. 이 함수는 문자열로 표현된 IPv4 및 IPv6 주소(및 네트워크)를 모두 허용합니다. 주소의 IP 버전과 CIDR의 IP 버전이 일치하지 않으면 0을 반환합니다. 구문
isIPAddressInRange(address, prefix)
인수
  • address — IPv4 또는 IPv6 주소입니다. String
  • prefix — CIDR 표기법의 IPv4 또는 IPv6 네트워크 프리픽스입니다. String
반환 값 주소의 IP 버전과 CIDR이 일치하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 범위에 포함되는 IPv4 주소
Query
SELECT isIPAddressInRange('127.0.0.1', '127.0.0.0/8')
Response
1
범위를 벗어난 IPv4 주소
Query
SELECT isIPAddressInRange('127.0.0.1', 'ffff::/16')
Response
0
범위에 속하지 않는 IPv6 주소
Query
SELECT isIPAddressInRange('::ffff:192.168.0.1', '::ffff:192.168.0.4/128')
Response
0

isIPv4String

도입 버전: v21.1.0 입력 문자열이 IPv4 주소인지 판별합니다. IPv6 버전은 isIPv6String을 참조하십시오. 구문
isIPv4String(string)
인수
  • string — 확인할 IP 주소 문자열입니다. String
반환 값 string이 IPv4 주소이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT addr, isIPv4String(addr)
FROM(
SELECT ['0.0.0.0', '127.0.0.1', '::ffff:127.0.0.1'] AS addr
)
ARRAY JOIN addr;
Response
┌─addr─────────────┬─isIPv4String(addr)─┐
│ 0.0.0.0          │                  1 │
│ 127.0.0.1        │                  1 │
│ ::ffff:127.0.0.1 │                  0 │
└──────────────────┴────────────────────┘

isIPv6String

도입 버전: v21.1.0 입력 문자열이 IPv6 주소인지 판별합니다. IPv4 버전은 isIPv4String을 참조하십시오. 구문
isIPv6String(string)
인수
  • string — 확인할 IP 주소 문자열입니다. String
반환 값 string이 IPv6 주소이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT addr, isIPv6String(addr)
FROM(SELECT ['::', '1111::ffff', '::ffff:127.0.0.1', '127.0.0.1'] AS addr)
ARRAY JOIN addr;
Response
┌─addr─────────────┬─isIPv6String(addr)─┐
│ ::               │                  1 │
│ 1111::ffff       │                  1 │
│ ::ffff:127.0.0.1 │                  1 │
│ 127.0.0.1        │                  0 │
└──────────────────┴────────────────────┘

toIPv4

도입 버전: v20.1.0 문자열 또는 IPv4 주소의 UInt32 형식을 IPv4 타입으로 변환합니다. IPv4StringToNumIPv4NumToString 함수와 유사하지만, 입력 인수로 문자열과 부호 없는 정수 데이터 타입을 모두 지원합니다. 구문
toIPv4(x)
인수 반환 값 IPv4 주소를 반환합니다. IPv4 예시 사용 예시
Query
SELECT toIPv4('171.225.130.45');
Response
┌─toIPv4('171.225.130.45')─┐
│ 171.225.130.45           │
└──────────────────────────┘
IPv4StringToNum 및 IPv4NumToString 함수와 비교.
Query
WITH
    '171.225.130.45' AS IPv4_string
SELECT
    hex(IPv4StringToNum(IPv4_string)),
    hex(toIPv4(IPv4_string))
Response
┌─hex(IPv4StringToNum(IPv4_string))─┬─hex(toIPv4(IPv4_string))─┐
│ ABE1822D                          │ ABE1822D                 │
└───────────────────────────────────┴──────────────────────────┘
정수에서의 변환
Query
SELECT toIPv4(2130706433);
Response
┌─toIPv4(2130706433)─┐
│ 127.0.0.1          │
└────────────────────┘

toIPv4OrDefault

도입 버전: v22.3.0 IPv4 주소를 나타내는 문자열 또는 UInt32 형식을 IPv4 타입으로 변환합니다. IPv4 주소의 포맷이 올바르지 않으면 0.0.0.0(0 IPv4) 또는 지정된 기본 IPv4 값을 반환합니다. 구문
toIPv4OrDefault(string[, default])
인수
  • string — 변환할 IP 주소 문자열입니다. String
  • default — 선택 사항입니다. 문자열이 올바르지 않은 IPv4 주소인 경우 반환할 값입니다. IPv4
반환 값 문자열을 IPv4 주소로 변환한 값을 반환하며, 변환에 실패하면 기본값을 반환합니다. IPv4 예시 유효한 IPv4 문자열과 올바르지 않은 IPv4 문자열
Query
WITH
    '192.168.1.1' AS valid_IPv4_string,
    '999.999.999.999' AS invalid_IPv4_string,
    'not_an_ip' AS malformed_string
SELECT
    toIPv4OrDefault(valid_IPv4_string) AS valid,
    toIPv4OrDefault(invalid_IPv4_string) AS default_value,
    toIPv4OrDefault(malformed_string, toIPv4('8.8.8.8')) AS provided_default;
Response
┌─valid─────────┬─default_value─┬─provided_default─┐
│ 192.168.1.1   │ 0.0.0.0       │ 8.8.8.8          │
└───────────────┴───────────────┴──────────────────┘

toIPv4OrNull

도입 버전: v22.3.0 입력 값을 IPv4 유형의 값으로 변환하며, 오류가 발생한 경우 NULL을 반환합니다. toIPv4와 비슷하지만, 변환 오류 시 예외를 발생시키는 대신 NULL을 반환합니다. 지원되는 인수:
  • 점으로 구분된 10진 표기법의 IPv4 주소 문자열 표현.
  • IPv4 주소의 정수 표현.
지원되지 않는 인수(NULL 반환):
  • 잘못된 IP 주소 포맷.
  • IPv6 주소.
  • 범위를 벗어난 값.
  • 형식이 잘못된 주소.
구문
toIPv4OrNull(x)
인수
  • x — 문자열 또는 정수로 표현된 IPv4 주소입니다. String 또는 Integer
반환 값 성공하면 IPv4 주소를 반환하고, 그렇지 않으면 NULL을 반환합니다. IPv4 또는 NULL 예시 사용 예시
Query
SELECT
    toIPv4OrNull('192.168.1.1') AS valid_ip,
    toIPv4OrNull('invalid.ip') AS invalid_ip
Response
┌─valid_ip────┬─invalid_ip─┐
│ 192.168.1.1 │       ᴺᵁᴸᴸ │
└─────────────┴────────────┘

toIPv4OrZero

도입 버전: v23.1.0 입력 값을 IPv4 타입의 값으로 변환하지만, 오류가 발생하면 0.0.0.0 IPv4 주소를 반환합니다. toIPv4와 비슷하지만, 변환 오류 시 예외를 발생시키는 대신 0 IPv4 주소(0.0.0.0)를 반환합니다. 지원되는 인수:
  • 점으로 구분된 10진 표기법의 IPv4 주소 문자열 표현입니다.
  • IPv4 주소의 정수 표현입니다.
지원되지 않는 인수(0 IPv4 반환):
  • 잘못된 IP 주소 포맷입니다.
  • IPv6 주소입니다.
  • 범위를 벗어난 값입니다.
구문
toIPv4OrZero(x)
인수
  • x — IPv4 주소의 문자열 또는 정수 표현입니다. String 또는 Integer
반환 값 성공하면 IPv4 주소를 반환하고, 실패하면 0 IPv4 주소(0.0.0.0)를 반환합니다. IPv4 예시 사용 예시
Query
SELECT
    toIPv4OrZero('192.168.1.1') AS valid_ip,
    toIPv4OrZero('invalid.ip') AS invalid_ip
Response
┌─valid_ip────┬─invalid_ip─┐
│ 192.168.1.1 │ 0.0.0.0    │
└─────────────┴────────────┘

toIPv6

도입 버전: v20.1.0 문자열 또는 IPv6 주소를 나타내는 UInt128 형식을 IPv6 타입으로 변환합니다. 문자열의 경우 IPv6 주소 형식이 잘못되면 빈 값을 반환합니다. IPv6 주소를 바이너리 형식(즉, FixedString(16))으로 변환하거나, 바이너리 형식에서 IPv6 주소로 변환하는 IPv6StringToNumIPv6NumToString 함수와 유사합니다. 입력 문자열에 유효한 IPv4 주소가 포함되어 있으면 해당 IPv4 주소에 해당하는 IPv6 값을 반환합니다. 구문
toIPv6(x)
인수 반환 값 IPv6 주소를 반환합니다. IPv6 예시 사용 예시
Query
WITH '2001:438:ffff::407d:1bc1' AS IPv6_string
SELECT
    hex(IPv6StringToNum(IPv6_string)),
    hex(toIPv6(IPv6_string));
Response
┌─hex(IPv6StringToNum(IPv6_string))─┬─hex(toIPv6(IPv6_string))─────────┐
│ 20010438FFFF000000000000407D1BC1  │ 20010438FFFF000000000000407D1BC1 │
└───────────────────────────────────┴──────────────────────────────────┘
IPv4에서 IPv6로의 매핑
Query
SELECT toIPv6('127.0.0.1');
Response
┌─toIPv6('127.0.0.1')─┐
│ ::ffff:127.0.0.1    │
└─────────────────────┘

toIPv6OrDefault

도입 버전: v22.3.0 문자열 또는 UInt128 형식의 IPv6 주소를 IPv6 타입으로 변환합니다. IPv6 주소의 포맷이 올바르지 않으면 ::(0 IPv6) 또는 지정된 기본 IPv6 값을 반환합니다. 구문
toIPv6OrDefault(string[, default])
인수
  • string — 변환할 IP 주소 문자열입니다. - default — 선택 사항입니다. 문자열의 형식이 올바르지 않을 때 반환할 값입니다.
반환 값 IPv6 주소를 반환합니다. 인수 string의 형식이 올바르지 않으면 :: 또는 지정한 선택적 기본값을 반환합니다. IPv6 예시 유효한 IPv6 문자열과 잘못된 IPv6 문자열
Query
WITH
    '2001:0db8:85a3:0000:0000:8a2e:0370:7334' AS valid_IPv6_string,
    '2001:0db8:85a3::8a2e:370g:7334' AS invalid_IPv6_string,
    'not_an_ipv6' AS malformed_string
SELECT
    toIPv6OrDefault(valid_IPv6_string) AS valid,
    toIPv6OrDefault(invalid_IPv6_string) AS default_value,
    toIPv6OrDefault(malformed_string, toIPv6('::1')) AS provided_default;
Response
┌─valid──────────────────────────────────┬─default_value─┬─provided_default─┐
│ 2001:db8:85a3::8a2e:370:7334           │ ::            │ ::1              │
└────────────────────────────────────────┴───────────────┴──────────────────┘

toIPv6OrNull

도입 버전: v22.3.0 입력값을 IPv6 유형의 값으로 변환하며, 오류가 발생하면 NULL을 반환합니다. toIPv6와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 NULL을 반환합니다. 지원되는 인수:
  • 표준 표기법의 IPv6 주소 문자열 표현.
  • IPv4 주소의 문자열 표현(IPv4-mapped IPv6로 변환됨).
  • IPv6 주소의 이진 표현.
지원되지 않는 인수(NULL 반환):
  • 잘못된 IP 주소 포맷.
  • 형식이 잘못된 IPv6 주소.
  • 범위를 벗어난 값.
  • 잘못된 표기법.
구문
toIPv6OrNull(x)
인수
  • x — IPv6 또는 IPv4 주소를 문자열로 표현한 값입니다. String
반환 값 성공하면 IPv6 주소를 반환하고, 그렇지 않으면 NULL을 반환합니다. IPv6 또는 NULL 예시 사용 예시
Query
SELECT
    toIPv6OrNull('2001:0db8:85a3:0000:0000:8a2e:0370:7334') AS valid_ipv6,
    toIPv6OrNull('invalid::ip') AS invalid_ipv6
Response
┌─valid_ipv6──────────────────────────┬─invalid_ipv6─┐
│ 2001:db8:85a3::8a2e:370:7334        │         ᴺᵁᴸᴸ │
└─────────────────────────────────────┴──────────────┘

toIPv6OrZero

도입 버전: v23.1.0 입력 값을 IPv6 타입의 값으로 변환하지만, 오류가 발생하면 값이 0인 IPv6 주소를 반환합니다. toIPv6와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 값이 0인 IPv6 주소(::)를 반환합니다. 지원되는 인수:
  • 표준 표기법의 IPv6 주소 문자열 표현.
  • IPv4 주소 문자열 표현(IPv4-mapped IPv6로 변환).
  • IPv6 주소의 이진 표현.
지원되지 않는 인수(값이 0인 IPv6 주소 반환):
  • 잘못된 IP 주소 포맷.
  • 형식이 잘못된 IPv6 주소.
  • 범위를 벗어난 값.
구문
toIPv6OrZero(x)
인수
  • x — IPv6 또는 IPv4 주소의 문자열 표현입니다. String
반환 값 성공하면 IPv6 주소를 반환하고, 그렇지 않으면 0 IPv6 주소(::)를 반환합니다. IPv6 예시 사용 예시
Query
SELECT
    toIPv6OrZero('2001:0db8:85a3:0000:0000:8a2e:0370:7334') AS valid_ipv6,
    toIPv6OrZero('invalid::ip') AS invalid_ipv6
Response
┌─valid_ipv6──────────────────────────┬─invalid_ipv6─┐
│ 2001:db8:85a3::8a2e:370:7334        │ ::           │
└─────────────────────────────────────┴──────────────┘
마지막 수정일 2026년 6월 10일