IP6

IPv6 Validator

Check IPv6 syntax, canonical addresses and scoped zone identifiers

IP & Routing
πŸ”’ 100% client-side β€” your data never leaves this page
Maintained by Evanβ€’Updated: September 30, 2026

Validate and normalize IPv6, including matched brackets and one zone (1–64 letters, digits, _, . or -). No URI percent decoding; canonical output uses compressed lowercase hex, including IPv4-mapped addresses. Limit: 1 MiB, 1000 non-empty lines. Valid syntax does not prove reachability.

Addresses and networks are processed in this page. No network probes or input drafts; analytics contains fixed action names and counts only.

Page reading mode

The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.

About this tool

Check one IPv6 address per line before changing a configuration or cleaning a log. This validator accepts full and compressed IPv6, matched brackets, and an embedded strict dotted-decimal IPv4 suffix. Output uses lowercase hexadecimal and the longest leftmost zero run; mapped IPv6 also uses hexadecimal output. A single zone identifier is preserved separately, with 1–64 letters, digits, underscores, dots or hyphens. This is a documented input subset, not a URL parser: it never decodes percent escapes, and it rejects empty zones and internal whitespace. Limits are 1 MiB and 1000 non-empty lines. Invalid rows remain visible for correction; export becomes available when all rows are valid. No address is contacted, uploaded or stored as a draft. Syntax success says nothing about assignment or reachability.

Failure Clinic (Common Pitfalls)

A URL parser appears to accept a broken address

Cause: URL parsing can remove tabs and newlines or interpret a percent escape. Those transformations are not pure address validation.

Fix: Paste the raw address without a scheme, port or path. Internal whitespace is rejected; matched brackets are optional and a supported zone is preserved without decoding.

The normalized text does not identify an accessible interface

Cause: A zone is a local scope identifier and can name an interface that does not exist on the current machine. The numeric IPv6 address alone does not include that context.

Fix: Verify the interface and routing table on the intended host. Use the table as a syntax inventory; do not replace a reachability check with a valid badge.

Scenario Recipes

01

Normalize an interface inventory

Goal: Preserve scope while correcting address syntax

  1. Paste 2001:0db8:0:0:0:0:0:1 and [fe80::1%eth0] on separate lines.
  2. Run Validate IPv6 and compare 2001:db8::1 with fe80::1%eth0.
  3. Correct any flagged line; copy or download only after all rows are valid.

Result: Canonical address text and an explicit zone column, without probing an interface.

Production Snippets

An address and its local zone are separate values

text

[FE80:0000:0000:0000:0000:0000:0000:0001%eth0]

Normalized: fe80::1%eth0
Zone: eth0

::1%              -> invalid: empty zone
fe80::1%25eth0    -> zone is literally 25eth0
::ffff:192.0.2.128 -> ::ffff:c000:280

Frequently Asked Questions

Why does ::ffff:192.0.2.128 become ::ffff:c000:280?

Both describe the same 128-bit IPv6 address. This tool consistently displays canonical lowercase hextets; it does not promise the dotted suffix representation recommended for some mapped-address contexts.

What happens to %eth0 or %25eth0?

A supported single zone is preserved literally. %eth0 yields zone eth0; %25eth0 yields zone 25eth0. No URL percent decoding occurs, so enter a raw address rather than a complete URL.

Why are ::1% and a tab inside the address rejected?

A percent sign requires a non-empty supported zone. Internal whitespace and control characters are invalid here; browser URL cleanup is not used to silently remove them.

Are brackets and leading zero hextets accepted?

Matched brackets and leading zeros within up to four hexadecimal digits per hextet are accepted. A single unmatched bracket is rejected. Leading zeros in embedded decimal IPv4 octets are rejected.

Can a mixed valid and invalid list be exported?

The table shows each row and line-specific diagnostics, but export is blocked until every non-empty row is valid. The limits are 1000 non-empty lines and 1 MiB total input.

Does valid mean that the address can receive traffic?

No. No DNS lookup, ping, allocation check or routing test is performed. Zone identifiers also depend on the local host interface configuration; the validator cannot confirm that an interface exists.

Keep browsing