双栈服务器排障
凌晨两点,某电商平台线上告警,部分用户无法访问。运维排查发现,新上线的 CDN 节点只分配了 IPv4,但核心数据库强制要求 IPv6 回源。此时需快速将数据库的白名单从纯 IPv4 格式转换为 IPv4-mapped IPv6 地址(如 ::ffff:10.0.0.1),否则回源失败。用本工具批量转换,省去手动拼接前缀和计算偏移的步骤,避免因格式错误导致误封 IP。
当网络配置或双栈迁移时,IPv4 与 IPv6 地址的转换常因格式差异出错。这个工具将 IPv4 地址转为 IPv4-mapped IPv6 格式(如 ::ffff:192.0.2.1)或 6to4 地址,适合网络工程师调试、文档编写或兼容性验证。输入一个合法 IPv4,即时输出两种标准映射。转换全程在浏览器内完成,地址不离开本地设备。
凌晨两点,某电商平台线上告警,部分用户无法访问。运维排查发现,新上线的 CDN 节点只分配了 IPv4,但核心数据库强制要求 IPv6 回源。此时需快速将数据库的白名单从纯 IPv4 格式转换为 IPv4-mapped IPv6 地址(如 ::ffff:10.0.0.1),否则回源失败。用本工具批量转换,省去手动拼接前缀和计算偏移的步骤,避免因格式错误导致误封 IP。
凌晨两点,某电商平台线上告警,部分用户无法访问。运维排查发现,新上线的 CDN 节点只分配了 IPv4,但核心数据库强制要求 IPv6 回源。此时需快速将数据库的白名单从纯 IPv4 格式转换为 IPv4-mapped IPv6 地址(如 ::ffff:10.0.0.1),否则回源失败。用本工具批量转换,省去手动拼接前缀和计算偏移的步骤,避免因格式错误导致误封 IP。
某金融公司计划年底将核心交易系统从 IPv4 迁移到 IPv6 双栈。安全团队整理出 300 条旧防火墙规则,每条规则都包含源/目的 IPv4 地址。迁移时需将这些地址转换为 IPv4-mapped IPv6 格式(::ffff:x.x.x.x),以便兼容旧配置。手动转换 300 条规则需 2 小时且极易出错——漏写一个冒号或前缀,规则就会失效,导致业务中断。用本工具批量粘贴转换,5 分钟完成校验,输出可直接粘贴进防火墙配置。
某跨国企业在新加坡办公室部署了 6to4 隧道,需为每台设备分配对应的 6to4 地址(2002:xxxx:xxxx::/48)。网络管理员拿到 10 个公网 IPv4 地址,需计算每个 IPv4 对应的 6to4 前缀。手动计算需将 IPv4 地址拆成 4 段,每段转十六进制再拼接,10 个地址算下来至少 30 分钟,且十六进制转换容易算错。用本工具输入 IPv4 地址,直接输出 2002 开头的完整 6to4 地址,复制即可写入设备配置。
某安全分析师在审计 IDS 日志时,发现同一攻击来源在日志中出现了两种格式:纯 IPv4(192.0.2.1)和 IPv4-mapped IPv6(::ffff:192.0.2.1)。安全分析平台要求所有 IP 地址统一为 IPv6 格式才能做关联分析。手动从 1 万条日志中找出所有纯 IPv4 并逐一转换,需 4 小时且容易遗漏。用本工具批量转换,将日志中所有 IPv4 地址提取后一次性转成 ::ffff 格式,再回填日志,10 分钟完成标准化。
某云服务商为新客户分配了一段 IPv4 子网(203.0.113.0/24),同时要求客户提供对应的 IPv6 地址段用于双栈部署。客户需要知道这段 IPv4 子网对应的 IPv4-mapped IPv6 地址范围(::ffff:203.0.113.0/120),以配置路由和 ACL。手动计算子网掩码的 IPv6 等价形式容易混淆——/24 在 IPv6 中对应 /120,但很多人会误写成 /96。用本工具输入 IPv4 CIDR,直接输出对应的 IPv6 CIDR 表示,避免子网范围算错导致地址冲突。
| 输入 | 输出 | 说明 |
|---|---|---|
| 192.168.1.1 | ::ffff:192.168.1.1 | 常规:最常见的私有 IPv4 地址,验证 IPv4-mapped IPv6 基本转换 |
| 0.0.0.0 | ::ffff:0.0.0.0 | 边界:全零地址的转换,确认工具不会省略为 :: 或报错 |
| 10.0.0.1 | ::ffff:10.0.0.1 | 常规:A 类私有地址,验证不同网段转换一致性 |
| 127.0.0.1 | ::ffff:127.0.0.1 | 常规:回环地址,验证本地测试场景的转换 |
| 255.255.255.255 | ::ffff:255.255.255.255 | 边界:广播地址最大值,验证四字节全满时的转换 |
| 192.168.1.256 | 错误:IPv4 地址格式无效,每段应在 0-255 之间 | 易错:超出范围的值,验证输入校验是否严格 |
| 192.168.1.1.1 | 错误:IPv4 地址格式无效,应为 4 段十进制数字 | 易错:多了一段,验证段数校验 |
| 2001:db8::1 | 错误:输入不是 IPv4 地址,本工具仅支持 IPv4 转 IPv6 | 易错:用户误输入 IPv6 地址,验证工具是否给出明确提示而非静默失败 |
1.混淆 IPv4-mapped IPv6 与 6to4 地址
将 ::ffff:10.0.0.1 当作 6to4 地址使用2002:0a00:0001::1 才是 6to4 地址IPv4-mapped IPv6 前缀 ::ffff:0:0/96 用于在 IPv6 套接字中表示 IPv4 节点;6to4 使用 2002::/16 前缀,将 IPv4 地址嵌入到 IPv6 地址的高 32 位。
2.IPv4 地址段嵌入顺序搞反
IPv4 192.168.1.1 写成 ::ffff:192.168.1.1 后,误以为映射后是 ::ffff:c0a8:0101正确映射为 ::ffff:c0a8:0101,其中 c0a8 对应 192.168,0101 对应 1.1IPv4-mapped IPv6 地址的低 32 位直接对应 IPv4 地址的 4 个字节,但十六进制表示时是高位在前,即 192.168 → 0xc0a8,1.1 → 0x0101。
3.在 IPv4-mapped IPv6 地址中错误添加冒号分隔
::ffff:192.168.1.1 写成 ::ffff:192.168.1.1: 或 ::ffff:192:168:1:1::ffff:192.168.1.1 或 ::ffff:c0a8:0101IPv4-mapped IPv6 地址的混合表示法(RFC 4291 §2.5.5.2)允许最后 4 个八位组用点分十进制,但前面必须是标准的 6 组十六进制 + 冒号分隔。
4.6to4 地址中 IPv4 部分未转换为十六进制
IPv4 10.0.0.1 直接拼成 2002:10.0.0.1::12002:0a00:0001::16to4 地址(RFC 3056)要求将 IPv4 地址的 32 位转换为 8 位十六进制数,嵌入到 2002::/16 之后。10.0.0.1 → 0a000001,写成 2002:0a00:0001::1。
5.省略前导零导致地址长度不符
IPv4 10.0.0.1 映射为 ::ffff:a00:1::ffff:0a00:0001IPv6 地址每段 16 位,省略前导零后 a00 实际是 0a00,1 是 0001,但标准表示要求每段保持 1-4 位十六进制,不强制补零,但工具输出通常统一为 4 位。
6.误将私有 IPv4 地址映射后当作公网 IPv6 使用
将 ::ffff:192.168.1.1 配置为对外服务的 IPv6 地址仅用于本地 IPv6 套接字兼容,不应作为可路由地址IPv4-mapped IPv6 地址仅在双栈节点内部使用,IANA 将其标记为 'Not Globally Reachable'(RFC 5156),不能用于跨网络通信。
7.混淆 IPv4-compatible IPv6 与 IPv4-mapped IPv6
将 ::10.0.0.1 当作 IPv4-mapped IPv6 地址::10.0.0.1 是已废弃的 IPv4-compatible IPv6(RFC 4291 已弃用),应使用 ::ffff:10.0.0.1IPv4-compatible 地址前缀为 ::/96,已由 RFC 4291 弃用;IPv4-mapped 地址前缀为 ::ffff:0:0/96,两者低 32 位相同但语义不同。
IPv4-mapped IPv6 = ::ffff:a.b.c.d
a.b.c.dIPv4 地址的四个十进制数IPv4 地址 192.0.2.1:a=192, b=0, c=2, d=1 → 十六进制 0xC0 0x00 0x02 0x01 → IPv6 地址为 ::ffff:c000:0201。
对,工具生成的是 IPv4-mapped IPv6 地址,格式为 ::ffff:x.x.x.x。这不是一个真正的 IPv6 地址(不能用来直接访问 IPv6 网络),而是把 IPv4 地址嵌入到 IPv6 地址空间的一种表示法,常用于双栈系统或日志记录。比如 192.168.1.1 转成 ::ffff:192.168.1.1(十六进制等效为 ::ffff:c0a8:101)。如果你需要真正的 IPv6 转换(比如 6to4 隧道),工具也提供单独的 6to4 模式,结果会是 2002:xxxx 开头的地址。
本工具只支持 IPv4 → IPv4-mapped IPv6 和 6to4 的转换,不支持 IPv6 → IPv4 的逆向转换。输入框只接受标准 IPv4 地址(如 10.0.0.1)或 CIDR 格式(如 10.0.0.0/24),填入 IPv6 地址(如 2001:db8::1)不会有任何输出。如果需要反向解析,可以试试全宝站的其他工具或系统自带的 ping -6 / nslookup 命令。
6to4 是一种自动隧道技术,把 IPv4 地址嵌入到 IPv6 地址的前 48 位:2002:IPv4_十六进制::/48。比如 1.2.3.4 转成 2002:0102:0304::1。这个地址理论上可以在支持 6to4 中继的网络中通信,但实际中很多公网路由器会过滤 6to4 流量,而且现代操作系统已默认禁用 6to4。所以 6to4 地址主要用于学习理解隧道原理,或者在内网测试环境里使用,不建议用于生产环境。
没有本质区别。转换算法只对 IPv4 地址本身做映射(内网地址也一样生成 ::ffff:10.0.0.5),并不区分公网/内网。但需要注意:内网 IPv4 地址(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)转换后的 IPv4-mapped IPv6 地址同样只能在内网环境使用,拿到公网路由不了。如果你需要把内网服务暴露到 IPv6 公网,应该用 NAT64 / DNS64 或直接申请公网 IPv6 地址,而不是靠这种映射。
完全本地计算,不会上传任何数据。工具标注了实现方式为 FE(纯浏览器/WASM),所有转换逻辑都在你电脑的浏览器里执行,不需要联网请求后端。输入框里的 IP 地址不会离开你的设备,刷新页面或关闭标签页后数据自动消失。可以放心处理敏感内网地址(如生产环境的服务器 IP)。
两种表示法完全等价,只是格式不同。::ffff:10.1.1.1 是混合点分十进制写法(前 80 位固定 + 16 位 ffff + 32 位 IPv4 点分),而 ::ffff:a01:101 是纯十六进制写法(将 10.1.1.1 换算为 0a01:0101)。本工具默认输出纯十六进制格式(更符合 RFC 4291 规范),同时也显示点分十进制等效值。两个地址在系统层面被识别为同一个地址,没有优劣之分。
本工具目前只支持单个 IPv4 地址的转换,不支持 CIDR 段批量处理。如果只有几个地址,可以手动一个个复制粘贴。如果需要批量转大量地址(比如几百个),建议写个简单脚本,用 Python 的 ipaddress 库一行搞定:str(ipaddress.IPv6Address('::ffff:' + ipv4_str))。或者把地址列表导出成 CSV,用在线表格工具拼接前缀。
这是系统或网络栈不支持 IPv4-mapped IPv6 地址的直接使用。虽然 Linux 内核默认支持(需开启 net.ipv6.bindv6only=0),但很多操作系统(如 Windows 默认、某些容器环境)不允许用 IPv6 套接字直接连接 IPv4-mapped 地址。解决方案:如果只是测试连通性,直接用原始 IPv4 地址 ping;如果需要在 IPv6 环境中引用该地址,改用真正的 IPv6 地址(比如通过隧道或 NAT64 获取)。这个转换结果更适合用在配置文件、日志解析或 DNS 记录中,而不是直接用来发包。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。