Validate any IPv6 address, expand compressed forms, and identify the address type. Checks format correctness, expands :: shorthand, and classifies as global unicast, link-local, multicast, loopback, or other types.

An IPv6 address consists of eight groups of four hexadecimal digits separated by colons, such as 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Leading zeros in each group can be omitted, and consecutive groups of zeros can be replaced with :: (but only once per address). Understanding these rules is essential for working with IPv6 subnets and DNS AAAA records.
| Type | Prefix | Example | Scope | Purpose |
|---|---|---|---|---|
| Global Unicast | 2000::/3 | 2001:db8::1 | Internet | Publicly routable, like IPv4 public IPs |
| Link-Local | fe80::/10 | fe80::1 | Single link | Auto-configured, neighbor discovery |
| Unique Local | fc00::/7 | fd00::1 | Private | Like IPv4 192.168.x.x |
| Multicast | ff00::/8 | ff02::1 | Varies | One-to-many (replaces broadcast) |
| Loopback | ::1 | ::1 | Host | Like IPv4 127.0.0.1 |
| IPv4-Mapped | ::ffff:/96 | ::ffff:c0a8:101 | Dual-stack | IPv4 in IPv6 socket |
| 6to4 | 2002::/16 | 2002:c0a8:101::1 | Tunnel | Transition mechanism |
Pro Tip: Every IPv6 interface has at least two addresses — a link-local (fe80::) address generated automatically, and optionally a global unicast address from your ISP or a unique local (fd00::) address. The link-local address is used for neighbor discovery and routing protocols. Use our Link-Local Generator to see how link-local addresses are derived from MAC addresses via EUI-64.
| Error | Example | Fix |
|---|---|---|
| Too many groups | 2001:db8:1:2:3:4:5:6:7 | Maximum 8 groups of hex digits |
| Double :: used twice | 2001::db8::1 | :: can only appear once |
| Invalid hex character | 2001:db8::gggg | Only 0-9 and a-f allowed |
| Group too long | 2001:db8::12345 | Maximum 4 hex digits per group |
| Missing colons | 2001db8::1 | Groups must be separated by colons |
fe80::1%eth0) are valid in link-local addresses and specify which network interface to use. They're stripped during validation since they're not part of the address itself. Zone IDs are essential when you have multiple interfaces, as the same link-local address can exist on different links. Check your current IPv6 address with What Is My IP.
2001:0db8:0000:0001 becomes 2001:db8:0:12001:db8:0:0:0:0:0:1 becomes 2001:db8::1Use our IPv6 Converter for batch address expansion and compression.
:: shorthand replaces consecutive zero groups but can only appear once.Check that it has 8 groups of 1-4 hex digits separated by colons (or uses :: to compress zero groups). Each hex digit must be 0-9 or a-f. The :: shorthand can only appear once. Use the validator above for instant checking.
A single :0: represents one group of zeros. The :: shorthand replaces one or more consecutive all-zero groups. For example, 2001:db8::1 expands to 2001:db8:0:0:0:0:0:1.
Yes, fe80::1 is a valid link-local IPv6 address. Link-local addresses (fe80::/10) are auto-configured on every IPv6 interface and used for local communication like neighbor discovery.
A zone ID (e.g., %eth0 in fe80::1%eth0) specifies which network interface to use for link-local addresses. It's needed because the same link-local address can exist on multiple interfaces.
Yes, IPv6 addresses are case-insensitive. 2001:DB8::1 and 2001:db8::1 are the same address. RFC 5952 recommends lowercase for consistency.
About Tommy N.
Tommy is the founder of RouterHax and a network engineer with 10+ years of experience in home and enterprise networking. He specializes in router configuration, WiFi optimization, and network security. When not writing guides, he's testing the latest mesh WiFi systems and helping readers troubleshoot their home networks.
![]() |
![]() |
![]() |
![]() |
Promotion for FREE Gifts. Moreover, Free Items here. Disable Ad Blocker to get them all.
Once done, hit any button as below
![]() |
![]() |
![]() |
![]() |