跳到内容
🛠️ToolsShed

IPv6展开/压缩工具

将压缩的IPv6地址展开为完整表示或压缩为最短形式。

关于此工具

IPv6 地址以十六进制编写,完全展开时最多可达 39 个字符。为了使其更易阅读和传输,IPv6 支持压缩技术,可以删除前导零并用双冒号(::)替换连续的零组。此工具在这两种格式之间进行转换:将压缩的地址展开为完整表示法,或将冗长的地址压缩为最短的有效形式。

使用该工具非常简单:粘贴或输入 IPv6 地址(采用任一格式),选择您想要展开或压缩,结果立即显示在输出字段中。它会自动检测输入的格式,无需手动选择格式即可在压缩和展开表示法之间轻松切换。无论您是在配置网络基础设施、调试 IPv6 路由问题,还是验证文档中的地址表示法,此工具都能可靠地处理转换。

网络工程师、系统管理员和从事现代网络工作的开发人员可从此工具中受益最大,尤其是在集成期望完整表示法的遗留系统或从网络监控系统读取紧凑地址时。随着 IPv4 地址空间的耗尽,IPv6 将变得越来越普遍,因此像这样的地址操作工具对任何管理当代网络的人来说都至关重要。

常见问题

代码实现

import ipaddress

def expand_ipv6(addr: str) -> str:
    """Expand compressed IPv6 to full form."""
    return ipaddress.ip_address(addr).exploded

def compress_ipv6(addr: str) -> str:
    """Compress full IPv6 to shortest form."""
    return ipaddress.ip_address(addr).compressed

examples = [
    "2001:db8::1",
    "::1",
    "fe80::1",
    "2001:0db8:0000:0000:0000:0000:0000:0001",
    "::ffff:192.168.1.1",  # IPv4-mapped IPv6
]

for addr in examples:
    expanded  = expand_ipv6(addr)
    compressed = compress_ipv6(expanded)
    print(f"Input:      {addr}")
    print(f"Expanded:   {expanded}")
    print(f"Compressed: {compressed}")
    print()

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.