IPv6 주소 압축 및 확장
IPv6 주소를 하나뿐인 표준 압축 표기로 줄이거나 32자리 전체로 확장하고, 어떤 0이 사라지는지, 왜 그 연속이 ::이 되었는지, 입력이 RFC 5952의 어떤 규칙을 어겼는지 보여 줍니다. 목록도 한 번에 처리합니다.
읽은 형식: IPv6
주소 하나, 또는 한 줄에 하나씩 적은 목록(최대 100개)을 입력하세요. 변환은 브라우저에서 이루어지며 아무것도 전송되지 않습니다.
2001:db8::1:0:0:1
RFC 5952 규칙별 확인
- 압축 표기(RFC 5952)
- 전체 표기
- URL에서
- 숫자 하나로
- 10진수 · 16진수 · 2진수
- 역방향 DNS 이름
IPv6 주소는 어떻게 압축하나요?
소문자로 바꾸고, 각 그룹의 앞자리 0을 지운 다음, 모두 0인 그룹이 두 개 이상 이어진 가장 긴 연속을 :: 하나로 바꿉니다. 길이가 같은 연속이 둘이면 앞쪽을 바꿉니다.
이렇게 해서 RFC 5952가 소프트웨어에 출력하라고 요구하는 하나뿐인 표준 표기를 얻습니다. 프로그램은 입력으로 그 밖의 유효한 표기도 모두 받아들여야 하므로, 압축은 주소 자체를 바꾸지 않고 적는 방식만 바꿉니다.
2001:0DB8:0000:0000:0000:FF00:0042:8329392001:0db8:0000:0000:0000:ff00:0042:8329392001:db8:0:0:0:ff00:42:8329272001:db8::ff00:42:83292239 → 22 자

입력한 그대로대문자, 앞자리 0이 있어도 됩니다: 유효한 표기라면 무엇이든 읽습니다.지워지는 0앞자리 0을 그룹마다 취소선으로 표시합니다.::이 되는 연속0 그룹의 가장 긴 연속, 길이가 같으면 앞쪽입니다.남는 연속나머지 0 연속은 0을 그대로 두며, 그 이유를 보여 줍니다.규칙별 확인입력이 RFC 5952 규칙을 몇 개 어겼는지, 그 아래 체크리스트에서 각 규칙과 바뀐 점을 보여 줍니다.IPv6 주소 압축 규칙은 무엇인가요?
RFC 5952는 다섯 가지 규칙을 정합니다: 앞자리 0을 지운다, ::은 가능한 한 길게 쓴다, 0 그룹 하나에는 ::을 쓰지 않는다, 가장 긴 연속을 압축한다(길이가 같으면 앞쪽), 16진수 문자는 소문자로 쓴다.
여섯 번째 권고는 IPv4를 담은 주소에 관한 것입니다: ::ffff: 같은 프리픽스 뒤에서는 마지막 32비트를 점으로 구분한 IPv4 주소로 씁니다. 도구는 입력을 각 규칙과 대조하고 고친 규칙을 알려 줍니다.
1앞자리 0 삭제§4.1
올바름: 2001:db8::1
틀림: 2001:0db8::0001
2::은 최대한 길게§4.2.1
올바름: 2001:db8::2:1
틀림: 2001:db8:0:0:0:0:2:1
3그룹 하나에는 :: 금지§4.2.2
올바름: 2001:db8:0:1:1:1:1:1
틀림: 2001:db8::1:1:1:1:1
4가장 긴 연속, 같으면 앞쪽§4.2.3
올바름: 2001:db8::1:0:0:1
틀림: 2001:db8:0:0:1::1
5소문자§4.3
올바름: 2001:db8::a
틀림: 2001:DB8::A
+끝부분 IPv4 점 표기§5
올바름: ::ffff:192.0.2.1
틀림: 0:0:0:0:0:ffff:192.0.2.1
IPv6 주소는 어떻게 확장하나요?
적힌 그룹 수를 세고, 여덟 개가 될 때까지 필요한 만큼의 0 그룹을 ::이 나타낸다고 보고, 모든 그룹을 네 자리로 채웁니다: 2001:db8::1에는 그룹이 세 개 있으므로 ::은 다섯 개입니다.
확장한 형식은 역방향 DNS가 니블(16진수 한 자리)마다 쓰는 형식이자, 많은 로그와 스프레드시트에서 텍스트로 정렬할 때 필요한 형식입니다. Python에서는 .exploded, Go에서는 StringExpanded라고 부릅니다.
2001db8::13 적힌 그룹2001db8000001+ 5 ::이 나타내는 0 그룹20010db80000000000000000000000014자리로 0 채움IPv6 주소 하나를 몇 가지로 쓸 수 있나요?
여러 가지입니다: 앞자리 0, 대소문자, ::의 위치가 모두 달라질 수 있어 주소 하나에 유효한 표기가 많으며, RFC 5952는 표준 표기 하나를 정하기 전에 2001:db8:0:0:1:0:0:1의 표기 여덟 가지를 나열합니다.
주소를 텍스트로 비교하면 실패하는 이유가 이것입니다: 같은 주소의 두 표기가 일치하지 않습니다. 대신 128비트 숫자로 비교하거나, 먼저 둘 다 압축하세요.
2001:db8:0:0:1:0:0:12001:0db8:0:0:1:0:0:12001:db8::1:0:0:12001:db8::0:1:0:0:12001:0db8::1:0:0:12001:db8:0:0:1::12001:db8:0000:0:1::12001:DB8:0:0:1::12001:db8::1:0:0:1표준 표기 · RFC 5952포트나 존이 있는 IPv6 주소는 URL에 어떻게 쓰나요?
주소를 대괄호로 감싸 http://[2001:db8::1]:8443/처럼 씁니다. 그러면 포트가 그룹으로 오인되지 않습니다. %eth0 같은 존은 브라우저 URL에 아예 쓸 수 없습니다.
RFC 5952는 포트가 있는 주소를 대괄호로 감싸라고 하며, 2001:db8::1:8443은 권장하지 않는다고 합니다. URL에서 대괄호는 다른 용도로 쓰이지 않습니다. 브라우저는 ::ffff: 뒤에서도 주소를 16진수로 출력하므로, [::ffff:192.0.2.1]은 [::ffff:c000:201]로 표시됩니다.
존은 fe80::1%eth0처럼 한 컴퓨터의 인터페이스를 가리킵니다. RFC 9844는 2025년에 존을 URL에서 다시 뺐고 브라우저도 거부하지만, 프로그램에서는 여전히 입력할 수 있어야 합니다.
존(%eth0) · fe80::1%eth0
| 프로그램 입력란에 입력 | 허용 |
| 브라우저 URL | 거부 |
| inet_pton() | 해석 불가 |
| 전역 주소 | 존이 없음 |
코드에서 IPv6를 압축하거나 확장하려면 어떻게 하나요?
주소를 파싱한 뒤 출력하면 됩니다: Python의 .compressed, Go의 netip.Addr.String(), MySQL의 INET6_NTOA(INET6_ATON(…))는 표준 표기를, .exploded와 StringExpanded()는 전체 표기를 돌려줍니다.
Python의 str()도 압축 표기를 돌려주며, Python은 %zone 접미사도 받아들입니다. MySQL은 소문자로 최대 39자를 출력하며, 어느 플랫폼에서나 같습니다.
› import ipaddress a = ipaddress.ip_address('2001:0DB8::0001') a.compressed, a.exploded ('2001:db8::1', '2001:0db8:0000:0000:0000:0000:0000:0001')
Python ipaddress
› a := netip.MustParseAddr("2001:0DB8::0001") fmt.Println(a.String(), a.StringExpanded()) 2001:db8::1 2001:0db8:0000:0000:0000:0000:0000:0001
Go net/netip
› SELECT INET6_NTOA(INET6_ATON('2001:0DB8::0001')); 2001:db8::1
MySQL 8.4
자주 묻는 질문
2001:0db8:0000:0000:0000:ff00:0042:8329의 압축 표기는 무엇인가요?
IPv6 주소에서 ::을 두 번 쓸 수 있나요?
2001:db8:0:1:1:1:1:1을 2001:db8::1:1:1:1:1로 압축하지 않는 이유는 무엇인가요?
IPv6 주소는 대문자와 소문자 중 무엇으로 써야 하나요?
IPv6 주소의 ::은 어떻게 확장하나요?
가장 긴 IPv6 주소는 몇 글자인가요?
::ffff:c000:280이 ::ffff:192.0.2.128이 되는 이유는 무엇인가요?
포트가 있는 IPv6 주소는 URL에 어떻게 넣나요?
Python에서 IPv6 주소를 압축하려면 어떻게 하나요?
IPv6 주소 목록을 한 번에 압축할 수 있나요?
부족한 점이 있습니까?기능 또는 새 도구 제안하기
관련 도구
IPv6에서 IPv4로
IPv6 속 IPv4 추출: 매핑·NAT64·6to4·Teredo·ISATAP, 비트 단위로
IPv4에서 IPv6로
IPv4 주소의 모든 IPv6 형식: 매핑, NAT64, 6to4와 각 형식의 사용 여부
IP를 10진수로 변환
IP 주소와 10진수·16진수·2진수·8진수 상호 변환, 옥텟별 자릿값 표시
내 IP 주소 확인
공인 IP의 IPv4와 IPv6를 한 번에 확인하고 네트워크, 위치, VPN 여부까지 확인
IPv6 테스트
IPv6 작동 여부, 브라우저가 고르는 주소 체계, 사이트의 IPv6 지원을 확인합니다
서브넷 계산기
IPv4·IPv6 블록의 네트워크, 브로드캐스트, 사용 가능한 호스트, 마스크 계산과 VLSM, 분할, 클라우드 서브넷
역방향 DNS 조회
PTR 레코드로 IP 주소에 연결된 호스트 이름 검색
DNS 조회
도메인 자체 네임서버의 모든 DNS 레코드를 Google·Cloudflare 캐시와 나란히 확인