IPv4 to IPv6 변환기

IPv4 주소를 입력하면 그 주소를 담은 모든 IPv6 주소를 보여 줍니다. 로그에서 보는 IPv4 매핑 형식부터 NAT64, 6to4까지 RFC 5952 표기와 전체 표기로 적고, 각각을 사용 중, 지금은 드묾, 사용 중단으로 표시합니다.

RFC 4291, 6052, 8215, 3056 비트 배치 · RFC 5952 표기 · 브라우저에서 실행

읽은 형식: 점으로 구분한 10진수

192.0.2.33 주소를 담은 IPv6 주소
문서용 주소 (RFC 5737)10진수 322122601716진수 0xC0000221
IPv4 매핑 주소 사용 중소켓, 로그, 데이터베이스 · RFC 4291
NAT64, 잘 알려진 프리픽스 사용 중IPv6 전용 네트워크에서 IPv4로 연결 · RFC 6052예시용 주소: 실제로 쓰려면 전역 IPv4가 필요합니다
네트워크 자체 NAT64 프리픽스 사용 중네트워크가 알리는 프리픽스와 길이 · RFC 6052
네트워크의 NAT64 프리픽스 추가
NAT64, 로컬 용도 블록 사용 중/96으로 표시, 길이는 네트워크가 정합니다 · RFC 8215
6to4 지금은 드묾사이트의 /48 · RFC 3056예시용 주소: 실제로 쓰려면 전역 IPv4가 필요합니다
ISATAP 지금은 드묾fe80::/64 아래(어떤 /64든 가능) · RFC 5214
IPv4-translated 지금은 드묾예전의 스테이트리스 변환(SIIT) · RFC 2765
IPv4 호환 주소 사용 중단용도 없음: 폐기됨 · RFC 4291
예시

점으로 구분한 10진수, 숫자 하나(3221225985), 16진수, URL 모두 됩니다. 변환은 브라우저에서 이루어지며 아무것도 전송되지 않습니다.

IPv4를 IPv6로 변환하는 방법은 무엇인가요?

IPv4 주소의 32비트를 16진수 그룹 두 개로 쓰고, IPv6 형식이 그 비트를 두는 자리에 넣습니다: 흔히 쓰는 IPv4 매핑 형식에서는 ::ffff: 뒤이므로, 192.0.2.33은 ::ffff:c000:221이 되고 ::ffff:192.0.2.33으로 씁니다.

10진수의 각 부분이 16진수 두 자리가 되고(192 = c0, 0 = 00, 2 = 02, 33 = 21), 이 네 쌍이 16비트 그룹 두 개를 이룹니다. RFC 5952는 비트의 의미가 드러나도록 ::ffff: 뒤에서는 점 표기를 유지하라고 권장합니다.

바뀌는 것은 주소를 적는 방식뿐입니다. 이것으로 기기가 IPv6 주소나 IPv6 연결을 얻지는 않으며, 그런 것은 네트워크에서 옵니다.

1각 부분을 16진수로192c00002023321
216비트 그룹 두 개로c000 : 221c0 00 → c000 · 02 21 → 0221 → 221
3프리픽스 뒤에::ffff:192.0.2.33= ::ffff:c000:221
192.0.2.33을 IPv4 매핑 주소로 바꾸는 단계별 과정.
IPv4 to IPv6 변환기로 192.0.2.33의 모든 IPv6 형식과 32비트가 들어가는 위치를 나열한 화면IPv4 to IPv6 변환기로 192.0.2.33의 모든 IPv6 형식과 32비트가 들어가는 위치를 나열한 화면16진수로 바꾼 IPv4192.0.2.33은 c0 00 02 21: 모든 IPv6 형식에 들어가는 8자리입니다.비트가 가는 곳같은 8자리가 매핑과 NAT64에서는 비트 96–127로, 6to4에서는 비트 16–47로 갑니다.아직 쓰이나요?사용 중, 지금은 드묾, 사용 중단 중 하나이며, RFC와 트래픽 데이터에 근거합니다.내 네트워크의 프리픽스NAT64 프리픽스와 길이를 입력하면 변환 장치가 쓰는 주소를 얻습니다.압축 또는 전체RFC 5952 표기와 그 아래의 다른 표기, 스위치 하나로 32자리 전체도 볼 수 있습니다.
IPv4 주소 하나를 모든 IPv6 형식으로: 32비트가 들어가는 위치와 그 형식이 아직 쓰이는지 여부.

어떤 IPv6 형식을 써야 하나요?

소프트웨어 안(소켓, 로그, 데이터베이스)에서는 IPv4 매핑 형식을, IPv6 전용 네트워크에서는 네트워크의 NAT64 프리픽스를 쓰세요. 나머지 형식은 지금은 드물거나 폐기되었습니다.

매핑 주소는 네트워크 위에 나타나지 않습니다. NAT64 주소는 나타나며, 잘 알려진 프리픽스 64:ff9b::/96에는 전역 IPv4 주소만 담아야 합니다(RFC 6052). 6to4에도 공인 IPv4 주소가 필요합니다.

IPv4 호환 주소는 사용 중단되었고, SIIT의 IPv4-translated 프리픽스는 RFC 6052 프리픽스로 대체되었습니다.

형식용도상태192.0.2.33의 변환 결과
IPv4 매핑 주소RFC 4291소켓, 로그, 데이터베이스사용 중::ffff:192.0.2.33
NAT64, 잘 알려진 프리픽스RFC 6052IPv6 전용 네트워크에서 IPv4로 연결사용 중64:ff9b::c000:221
NAT64, 로컬 용도 블록RFC 821564:ff9b:1::/48 안에서 운영하는 자체 NAT64사용 중64:ff9b:1::c000:221
6to4RFC 3056자동 터널, 지금은 드묾지금은 드묾2002:c000:221::/48
ISATAPRFC 5214한 사이트 안의 터널, 지금은 드묾지금은 드묾fe80::5efe:c000:221
IPv4-translatedRFC 2765예전의 스테이트리스 변환(SIIT)지금은 드묾::ffff:0:192.0.2.33
IPv4 호환 주소RFC 4291용도 없음: 폐기됨사용 중단::c000:221
IPv4 주소 하나의 모든 표준 IPv6 형식과 그 용도, 그리고 아직 쓰이는지 여부.

IPv4 매핑 IPv6 주소란 무엇인가요?

IPv4 주소를 IPv6 주소로 쓴 것으로, 0 비트 80개, 1 비트 16개, 그리고 32비트 IPv4 주소로 이루어집니다(::ffff:0:0/96). 덕분에 IPv6 소켓 하나로 동작하는 소프트웨어도 IPv4 상대를 처리할 수 있습니다.

매핑 주소는 소프트웨어 안에만 존재하며, IANA는 이 블록을 전달 불가로 지정합니다. 여기에는 보안 측면도 있습니다: ::ffff:127.0.0.1에서 온 패킷이 그 컴퓨터 자신에게서 온 통신만 허용하려는 검사를 통과할 수 있으므로, 필터는 비교하기 전에 매핑을 풀어야 합니다(RFC 4942).

데이터베이스도 이 주소를 알아봅니다: MySQL의 IS_IPV4_MAPPED()는 점 표기와 16진수 끝부분을 모두 받아들이고, PostgreSQL은 혼합 표기로 출력합니다.

0 비트 80개0000:0000:0000:0000:00001 비트 16개ffffIPv4 주소, 32비트192.0.2.33
소프트웨어 내부 accept() → ::ffff:192.0.2.33
네트워크 위 전송되지 않음 IANA: 전달 불가
::ffff:192.0.2.33의 128비트를 실제 비율로 그리고, 이 형식이 존재하는 곳을 표시했습니다.

IPv4에서 IPv6로의 전환은 어떻게 이루어지나요?

네트워크는 두 프로토콜을 나란히 운영하고(듀얼 스택), IPv6 전용 네트워크는 변환을 통해 IPv4 인터넷에 닿습니다: DNS64와 함께 쓰는 NAT64, 또는 휴대폰에서는 464XLAT입니다.

NAT64에서는 DNS64가 호스트의 A 레코드로 AAAA 레코드를 만들고, 변환 장치가 트래픽을 IPv4로 전달합니다. 464XLAT에서는 휴대폰의 변환 장치(CLAT)가 앱의 IPv4 패킷을 IPv6로 바꾸고, 제공업체의 NAT64(PLAT)가 공유 공인 주소에서 이를 다시 IPv4로 바꿉니다.

전환은 절반쯤 진행되었습니다: 2026년 10월 22일 사용자의 47.13%가 IPv6로 Google에 접속했고(Google), APNIC Labs는 전 세계 사용자의 43.8%를 IPv6 지원으로 집계했습니다.

오늘날 IPv6와 IPv4가 만나는 세 가지 방식과 보급 현황(2026년 10월 22일).

IPv4와 IPv6는 서로 통신할 수 있나요?

직접은 안 됩니다: IPv6 전용 호스트와 IPv4 전용 호스트 사이에는 IPv6 클라이언트가 IPv4 서버에 닿게 해 주는 NAT64 같은 변환 장치가 필요합니다. 반면 듀얼 스택 호스트는 상대가 가진 프로토콜을 그대로 씁니다.

두 프로토콜은 패킷 형식이 달라서 무언가가 패킷을 하나하나 다시 써야 합니다. 스테이트리스 변환 장치(SIIT, RFC 7915)는 RFC 6052 프리픽스를 써서 주소를 일대일로 대응시키고, NAT64는 여러 IPv6 클라이언트가 IPv4 주소를 함께 쓰게 합니다.

그래서 대부분의 네트워크가 두 프로토콜을 계속 운영합니다: 듀얼 스택 기기에는 변환이 전혀 필요 없습니다.

클라이언트 ↓ · 서버 →IPv4만IPv6만듀얼 스택
IPv4만IPv4변환 장치(SIIT)IPv4
IPv6만NAT64 + DNS64IPv6IPv6
듀얼 스택IPv4IPv6둘 다 가능
누가 누구에게 연결할 수 있고, 그 사이에 무엇이 있는지.

코드에서 IPv4를 IPv6로 변환하려면 어떻게 하나요?

대부분의 언어에서는 호출 한 번이면 됩니다: Python의 IPv4Address.ipv6_mapped, Go netip의 Is4In6과 Unmap, MySQL의 INET6_ATON과 IS_IPV4_MAPPED, PostgreSQL의 inet 타입입니다.

Python 3.13에서 ipv6_mapped가 추가되었고, 매핑 주소를 점 표기로 출력합니다. Go의 Addr.String은 ::ffff:192.0.2.33을 출력하고, Unmap은 일반 IPv4 주소를 돌려줍니다. Node의 net.isIP()는 매핑 주소에 6을 돌려주고, net.BlockList는 IPv4 규칙을 매핑 주소에도 적용합니다.

› import ipaddress
ipaddress.IPv4Address('192.0.2.33').ipv6_mapped
IPv6Address('::ffff:192.0.2.33')

Python 3.13+

› a := netip.MustParseAddr("::ffff:192.0.2.33")
fmt.Println(a.Is4In6(), a.Unmap())
true 192.0.2.33

Go net/netip

› SELECT IS_IPV4_MAPPED(INET6_ATON('::ffff:192.0.2.33'));
1

MySQL 8.4

› SELECT inet '::ffff:192.0.2.33';
::ffff:192.0.2.33

PostgreSQL 16

› net.isIP('::ffff:192.0.2.33')
6

Node.js net

같은 IPv4 매핑 주소를 다섯 가지 언어와 데이터베이스에서 다룬 결과와 각각의 출력.

자주 묻는 질문

192.168.1.1은 IPv6로 무엇인가요?

IPv4 매핑 주소로 쓰면 ::ffff:192.168.1.1이고, 마지막 32비트를 16진수로 쓰면 ::ffff:c0a8:101입니다. 이 형식은 소프트웨어 안에서 쓰는 것이며, 공유기에 IPv6 주소를 주지는 않습니다. 192.168.1.1은 사설 주소이므로 NAT64의 잘 알려진 프리픽스 64:ff9b::/96 뒤에 쓰면 안 되고, 6to4 프리픽스에는 공인 IPv4 주소가 필요합니다.

IPv4를 IPv6로 변환하면 내 기기에 IPv6 주소가 생기나요?

아닙니다. IPv4 주소를 IPv6 형식으로 적어도 같은 32비트를 적는 방식만 바뀔 뿐, 기기에는 여전히 IPv6 연결이 없습니다. IPv6 주소는 네트워크에서 옵니다: 공유기나 제공업체가 프리픽스를 나눠 주고, 기기는 그 프리픽스로 자기 주소를 만듭니다. 내 연결에서 IPv6가 작동하는지는 IPv6 테스트로 확인할 수 있습니다.

데이터베이스에는 어떤 IPv6 형식으로 저장해야 하나요?

주소는 텍스트가 아니라 바이너리로 저장하세요. MySQL의 INET6_ATON은 IPv6에 16바이트, IPv4에 4바이트를 돌려주고, IS_IPV4_MAPPED로 어떤 IPv6 값이 IPv4 매핑 주소인지 알 수 있습니다. 한 열에 두 주소 체계를 모두 16바이트로 담아야 한다면, IPv4를 IPv6로 쓰는 표준 방법은 IPv4 매핑 형식 ::ffff:a.b.c.d입니다. PostgreSQL의 inet 타입은 두 주소 체계를 모두 그대로 저장합니다.

::ffff:192.0.2.1과 ::ffff:c000:201은 같은 주소인가요?

네. 둘 다 같은 128비트를 나타내며, 앞의 것은 마지막 32비트를 점으로 구분한 IPv4 주소로, 뒤의 것은 16진수 그룹 두 개로 적은 것입니다. RFC 5952는 IPv4 매핑 주소에 점 표기를 권장하지만, 브라우저는 URL에서 16진수 형식을 출력합니다. 이런 표기들이 서로 일치하도록 주소는 텍스트가 아니라 반드시 숫자로 비교하세요.

64:ff9b::10.1.1.1이 무효인 이유는 무엇인가요?

NAT64의 잘 알려진 프리픽스에는 전역 IPv4 주소만 담을 수 있기 때문입니다. RFC 6052는 사설 IPv4 주소를 담은 64:ff9b::10.1.1.1 같은 주소를 무효로 보며, 변환 장치는 그 주소로 온 패킷을 버려야 합니다. 사설 주소처럼 전역이 아닌 IPv4 주소를 입력하면 변환기는 NAT64 행에 경고를 표시하고, 6to4에는 공인 주소가 필요하므로 6to4 행에도 표시합니다.

IPv4 주소의 6to4 주소는 무엇인가요?

2002:와 IPv4 주소의 16진수로 이루어진 /48 프리픽스입니다. 192.0.2.33이면 2002:c000:221::/48이 되고, 사이트는 그 안에서 서브넷과 호스트에 번호를 매겼습니다. 6to4에는 공인 IPv4 주소가 필요하므로 사설 주소에는 유효한 6to4 프리픽스가 없습니다. RFC 7526이 6to4를 작동하게 하던 공개 릴레이를 폐기했으며, 오늘날 이 형식은 거의 보이지 않습니다.

IPv6를 쓰는 사람은 얼마나 되나요?

절반에 가깝습니다. 2026년 10월 22일 사용자의 47.13%가 IPv6로 Google에 접속했고, APNIC Labs는 2026년 10월 21일까지 30일 동안 전 세계 사용자의 43.8%가 IPv6를 지원하고 40.9%가 IPv6를 우선 사용한다고 측정했습니다. 나머지는 아직 IPv4만 쓰므로, 네트워크는 두 프로토콜을 나란히 운영하거나 둘 사이를 변환합니다.

IPv6 전용 휴대폰은 IPv4 웹사이트에 어떻게 접속하나요?

464XLAT을 통해서입니다. 휴대폰의 변환 장치인 CLAT이 앱의 IPv4 패킷을 스테이트리스로 IPv6로 바꾸고, 제공업체의 NAT64인 PLAT이 공유 공인 주소에서 이를 다시 IPv4로 바꿉니다. 도메인 이름의 경우 DNS64가 A 레코드로 AAAA 레코드를 만들기 때문에 64:ff9b::c000:221 같은 주소가 보입니다. 휴대폰은 ipv4only.arpa를 조회해 네트워크의 프리픽스를 찾습니다.

Python에서 IPv4를 IPv6로 변환하려면 어떻게 하나요?

Python 3.13 이상에서는 ipaddress.IPv4Address('192.0.2.33').ipv6_mapped가 IPv6Address('::ffff:192.0.2.33')를 돌려줍니다. 이전 버전에서는 텍스트로 만드세요: ipaddress.IPv6Address('::ffff:192.0.2.33'). Python은 3.13과 3.12.11부터 매핑 주소를 점 표기로 출력하며, 그 전 릴리스는 ::ffff:c000:221로 출력합니다. 두 표기는 같은 주소이므로 문자열이 아니라 객체를 비교하세요.

입력한 내용이 서버로 전송되나요?

아닙니다. 이 페이지의 모든 형식은 브라우저에서 계산되므로, 입력하는 즉시 결과가 나타납니다. 링크를 복사하면 주소와 입력한 NAT64 프리픽스가 URL의 # 뒤에 담기는데, 이 부분은 브라우저가 서버로 보내지 않으므로 링크를 연 사람도 같은 변환 결과를 봅니다. 페이지의 스크립트를 불러오지 못한 경우에만 변환 버튼이 일반 페이지 요청을 보냅니다.

부족한 점이 있습니까?기능 또는 새 도구 제안하기