コンテンツへスキップ
🛠️ToolsShed

IPv6拡張/圧縮ツール

IPv6アドレスを完全表記に展開、または最短形式に圧縮します。

このツールについて

IPv6アドレスは16進数で記述され、完全に展開すると最大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.