Конвертер IPv4 в IPv6
Введите адрес IPv4 и увидите все адреса IPv6, которые его содержат, от отображённой формы в ваших журналах до NAT64 и 6to4, в записи RFC 5952 и полностью, каждый с пометкой «используется», «сегодня редкость» или «устарел».
Прочитано как запись с точками
С точками, одним числом (3221225985), в hex или как URL. Преобразование идёт в вашем браузере, ничего не отправляется.
Как перевести IPv4 в IPv6?
Запишите 32 бита адреса IPv4 как две hex-группы и поставьте их туда, где их хранит формат IPv6: для обычной отображённой формы это место после ::ffff:, так что 192.0.2.33 становится ::ffff:c000:221, или в записи с точками ::ffff:192.0.2.33.
Каждая десятичная часть становится двумя hex-цифрами (192 = c0, 0 = 00, 2 = 02, 33 = 21), а четыре пары образуют две 16-битные группы. RFC 5952 рекомендует сохранять запись с точками после ::ffff:, потому что она показывает, что означают эти биты.
Это меняет только запись адреса. Устройство не получает ни адреса IPv6, ни подключения по IPv6: их даёт сеть.
c00002023321
Ваш IPv4 в hex192.0.2.33 — это c0 00 02 21: 8 цифр, которые несёт каждая форма IPv6.Куда идут битыТе же 8 цифр переходят в биты 96–127 у отображённого адреса и NAT64 и в биты 16–47 у 6to4.Используется ли ещё?Используется, сегодня редкость или устарел — по RFC и данным о трафике.Префикс вашей сетиВведите префикс NAT64 и длину, чтобы получить адрес, который использует ваш транслятор.Сжатая или полнаяЗапись RFC 5952, под ней другое написание, а одним переключателем — все 32 цифры.Какую форму IPv6 использовать?
В программах (сокеты, журналы, базы данных) используйте отображённую форму, а в сети только с IPv6 — префикс NAT64 вашей сети; остальные формы сегодня редки или выведены из употребления.
Отображённые адреса никогда не передаются по сети. Адреса NAT64 передаются, и общеизвестный префикс 64:ff9b::/96 может содержать только глобальные адреса IPv4 (RFC 6052). Для 6to4 тоже нужен публичный адрес IPv4.
IPv4-совместимые адреса устарели, а префикс IPv4-транслированных адресов SIIT уступил место префиксам RFC 6052.
| Формат | Для чего | Статус | 192.0.2.33 становится |
|---|---|---|---|
| Отображённый IPv4RFC 4291 | Сокеты, журналы и базы данных | Используется | ::ffff:192.0.2.33 |
| NAT64, общеизвестный префиксRFC 6052 | Доступ к IPv4 из сетей только с IPv6 | Используется | 64:ff9b::c000:221 |
| NAT64, блок для локального использованияRFC 8215 | Собственный NAT64 сети внутри 64:ff9b:1::/48 | Используется | 64:ff9b:1::c000:221 |
| 6to4RFC 3056 | Автоматические туннели, сейчас редкость | Сегодня редкость | 2002:c000:221::/48 |
| ISATAPRFC 5214 | Туннели внутри одной площадки, сейчас редкость | Сегодня редкость | fe80::5efe:c000:221 |
| IPv4-транслированныйRFC 2765 | Старая трансляция без сохранения состояния (SIIT) | Сегодня редкость | ::ffff:0:192.0.2.33 |
| IPv4-совместимыйRFC 4291 | Ни для чего: выведен из употребления | Устарел | ::c000:221 |
Что такое отображённый адрес IPv4 (IPv4-mapped)?
Это адрес IPv4, записанный как адрес IPv6: 80 нулевых бит, 16 единичных, затем 32-битный адрес IPv4 (::ffff:0:0/96), чтобы программа с одним сокетом IPv6 могла работать и с собеседниками по IPv4.
Отображённые адреса существуют только внутри программ; IANA помечает этот блок как непересылаемый. У этого есть сторона, связанная с безопасностью: пакет от ::ffff:127.0.0.1 может пройти проверки, рассчитанные на сам компьютер, поэтому фильтры должны сначала извлекать из адреса IPv4, а уже потом сравнивать (RFC 4942).
Базы данных их распознают: IS_IPV4_MAPPED() в MySQL принимает конец адреса с точками или в hex, а PostgreSQL выводит их в смешанной записи.
0000:0000:0000:0000:000016 единичных битffffадрес IPv4, 32 бита192.0.2.33accept() → ::ffff:192.0.2.33Как проходит переход с IPv4 на IPv6?
Сети запускают оба протокола параллельно (двойной стек), а сети только с IPv6 выходят в интернет IPv4 через трансляцию: NAT64 с DNS64 или 464XLAT на телефонах.
При NAT64 DNS64 строит AAAA-запись из A-записи хоста, а транслятор передаёт трафик в IPv4. При 464XLAT транслятор на телефоне (CLAT) превращает пакеты IPv4 приложения в IPv6, а NAT64 провайдера (PLAT) превращает их обратно в IPv4 на общих публичных адресах.
Переход пройден примерно наполовину: 22 октября 2026 года 47,13% пользователей заходили в Google по IPv6 (Google), а APNIC Labs насчитала в мире 43,8% пользователей с поддержкой IPv6.
Двойной стек
IPv4 + IPv6IPv4 · IPv6Сервер192.0.2.33 · 2001:db8::33NAT64 + DNS64
IPv6IPv6DNS64AAAA 64:ff9b::c000:221IPv6NAT6464:ff9b::/96IPv4Сервер IPv4192.0.2.33464XLAT
IPv4IPv4CLATТелефонIPv6PLATNAT64IPv4Сервер IPv4192.0.2.33
пользователей поддерживают IPv6 (APNIC Labs)Могут ли IPv4 и IPv6 связываться друг с другом?
Напрямую — нет: хосту только с IPv6 и хосту только с IPv4 нужен транслятор между ними, например NAT64 для клиентов IPv6, обращающихся к серверам IPv4, а хосты с двойным стеком просто используют протокол, который есть у другой стороны.
У двух протоколов разные форматы пакетов, поэтому что-то должно переписывать каждый пакет. Трансляторы без сохранения состояния (SIIT, RFC 7915) сопоставляют адреса один к одному с помощью префиксов RFC 6052; NAT64 делит адреса IPv4 между множеством клиентов IPv6.
Поэтому большинство сетей держат оба протокола: устройству с двойным стеком трансляция вообще не нужна.
| Клиент ↓ · Сервер → | Только IPv4 | Только IPv6 | Двойной стек |
|---|---|---|---|
| Только IPv4 | IPv4 | транслятор (SIIT) | IPv4 |
| Только IPv6 | NAT64 + DNS64 | IPv6 | IPv6 |
| Двойной стек | IPv4 | IPv6 | любой |
Как перевести IPv4 в IPv6 в коде?
В большинстве языков это делается одним вызовом: IPv4Address.ipv6_mapped в Python, netip в Go с Is4In6 и Unmap, INET6_ATON в MySQL с IS_IPV4_MAPPED и тип inet в PostgreSQL.
В Python 3.13 появилось ipv6_mapped, и отображённые адреса выводятся в записи с точками. Addr.String в Go выводит ::ffff:192.0.2.33, а Unmap возвращает обычный адрес IPv4. net.isIP() в Node возвращает 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
Частые вопросы
Как записать 192.168.1.1 в IPv6?
Получит ли моё устройство адрес IPv6, если перевести IPv4 в IPv6?
Какую форму IPv6 хранить в базе данных?
::ffff:192.0.2.1 и ::ffff:c000:201 — один и тот же адрес?
Почему 64:ff9b::10.1.1.1 недопустим?
Какой адрес 6to4 у адреса IPv4?
Сколько людей пользуются IPv6?
Как телефоны только с IPv6 открывают сайты на IPv4?
Как перевести IPv4 в IPv6 в Python?
Отправляется ли то, что я ввожу, на ваш сервер?
Чего-то не хватает?Предложите функцию или новый инструмент
Похожие инструменты
IPv6 в IPv4
IPv4 внутри адреса IPv6: отображённый, NAT64, 6to4, Teredo и ISATAP, бит за битом
Сжатие IPv6
Сжатие и полная запись адресов IPv6 по RFC 5952 и правило, которое убрало каждый ноль
Конвертер IP в десятичный
IP-адрес в десятичное, hex, двоичное и восьмеричное число и обратно, с весами разрядов каждого октета
Мой IP адрес
Ваш публичный IPv4 и IPv6 сразу, с сетью, местоположением и проверкой VPN
Проверка IPv6
Проверьте, работает ли IPv6, что выбирает браузер и есть ли IPv6 у сайта
Калькулятор подсетей
Сеть, широковещательный адрес, доступные хосты и маски для любого блока IPv4 или IPv6, а также VLSM, разбиение и облачные подсети
Обратный DNS
Поиск имён хостов по IP адресу через записи PTR
Проверка DNS
Все DNS-записи прямо с серверов имён домена рядом с кешем Google и Cloudflare