Report Tool or Give Us Suggestions

Binary to IPv6 Converter

Convert a 128-bit binary string into its corresponding IPv6 address with zero-compression, casing support, and detailed address block visualization.

L ading . . .

What is a Binary to IPv6 Converter?

An IPv6 address consists of 128 bits of binary data. A Binary to IPv6 Converter allows you to paste a 128-digit binary string of 0s and 1s and instantly convert it into a standard, human-readable IPv6 colon-separated hexadecimal representation.

Standard IPv6 notation groups these 128 bits into 8 blocks of 16 bits each, separating them with colons: $$\text{IPv6 Block Size} = \frac{128\text{ bits}}{8\text{ blocks}} = 16\text{ bits per block}$$ Each 16-bit block is represented by 4 hexadecimal digits ($16 \text{ bits} \div 4 \text{ bits/hex digit} = 4 \text{ hex digits}$).

IPv6 Zero Compression Rules (RFC 5952)

To make extremely long IPv6 addresses more readable, RFC 5952 introduces a standard set of abbreviation and zero compression rules:

  1. Omit Leading Zeros: Leading zeros in any individual 16-bit block can be omitted. For example, the block $:0db8:$ becomes $:db8:$. A block of all zeros $:0000:$ is represented as a single $:0:$.
  2. Use "::" (Double Colon) for Zero Runs: A single run of consecutive all-zero blocks can be shortened to a double colon ($::$). For example, $:0:0:0:$ becomes $::$.
  3. Strict "::" Constraints: Zero compression using $::$ can only be applied once in an address to prevent ambiguity during decoding. Furthermore, it should only be used when there are at least two consecutive blocks of all zeros. If there is a tie for the longest run, the first run must be compressed.

Step-by-Step Conversion Example

Let's convert a partial 128-bit binary string: $$\text{Input: } 0010000000000001\ 0000110110111000\ 0000000000000000\ 0000000000000000\ \dots$$

  1. Divide: Split the string into 8 equal parts of 16 binary digits.
  2. Block 1: $0010000000000001_2 \implies 2001_{16}$
  3. Block 2: $0000110110111000_2 \implies 0db8_{16}$
  4. Block 3: $0000000000000000_2 \implies 0000_{16}$
  5. Block 4: $0000000000000000_2 \implies 0000_{16}$
  6. Join & Compress: $2001:0db8:0000:0000:\dots \implies 2001:db8::\dots$

Frequently Asked Questions

Why is zero compression limited to only one instance of "::"?

If multiple double colons ($::$) were allowed, it would be impossible to determine how many zero blocks belong to each compressed group. For example, $2001::abcd::1$ could mean $2001:0:0:abcd:0:0:0:1$ or $2001:0:0:0:abcd:0:0:1$. Limiting it to one instance prevents this ambiguity.

What is the size of an IPv6 address compared to IPv4?

An IPv4 address is 32 bits (4 bytes), while an IPv6 address is 128 bits (16 bytes). This represents a massive increase in address space, allowing for $2^{128}$ or approximately $3.4 \times 10^{38}$ unique IP addresses.

Are binary digits uppercase or lowercase in IPv6?

Binary digits are just 0s and 1s and do not have case. However, when converted to hexadecimal, RFC 5952 recommends using lowercase letters (e.g. "a" through "f") for uniform display, although uppercase hex letters are also fully valid.

logo OnlineMiniTools

OnlineMiniTools.com is your ultimate destination for a wide range of web-based tools, all available for free.

Feel free to reach out with any suggestions or improvements for any tool at admin@onlineminitools.com. We value your feedback and are continuously striving to enhance the tool's functionality.

© 2026 OnlineMiniTools . All rights reserved.

Hosted on Hostinger

v1.10.0