🛠️ToolsShed

IPv6 Expander / Compressor

Expand compressed IPv6 addresses to full notation or compress them.

Frequently Asked Questions

Code Implementation

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.