IPv6 address expander
Spell out every digit of an IPv6 address, with its ip6.arpa reverse name and binary form alongside.
Results for 2001:db8::ff00:42:8329
IPv6 address
Here it is, tidied
The short form is what you should paste into configs (RFC 5952). The long form is handy for sorting and spotting typos.
Folded into the ::
You typed the short form
Other forms
- Without leading zeros
2001:db8:0:0:0:ff00:42:8329- Reverse DNS name
9.2.3.8.2.4.0.0.0.0.f.f.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa- Nibbles
9.2.3.8.2.4.0.0.0.0.f.f.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2- Binary
0010000000000001:0000110110111000:0000000000000000:0000000000000000:0000000000000000:1111111100000000:0000000001000010:1000001100101001
Structured result (JSON) · 706 B
{
"items": [
{
"input": "2001:db8::ff00:42:8329",
"ok": true,
"result": "2001:0db8:0000:0000:0000:ff00:0042:8329",
"canonical": true,
"expanded": "2001:0db8:0000:0000:0000:ff00:0042:8329",
"uncompressed": "2001:db8:0:0:0:ff00:42:8329",
"nibbles": "9.2.3.8.2.4.0.0.0.0.f.f.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2",
"ip6Arpa": "9.2.3.8.2.4.0.0.0.0.f.f.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa",
"binary": "0010000000000001:0000110110111000:0000000000000000:0000000000000000:0000000000000000:1111111100000000:0000000001000010:1000001100101001"
}
],
"totals": {
"items": 1,
"ok": 1,
"failed": 0
},
"truncated": false
}What expanding gives you
Expanding writes out every digit of an IPv6 address: eight groups of four hex digits, with no :: and no missing zeros. So 2001:db8::ff00:42:8329 becomes 2001:0db8:0000:0000:0000:ff00:0042:8329. This form is easy to sort, line up in a table or search for in text, and it works with software that doesn't understand ::. It is also the first step towards the reverse DNS name used for PTR records, the DNS records that map an address back to a hostname.
| Representation | Value |
|---|---|
| Shortened | 2001:db8::ff00:42:8329 |
| Expanded | 2001:0db8:0000:0000:0000:ff00:0042:8329 |
| Without leading zeros | 2001:db8:0:0:0:ff00:42:8329 |
| Reverse DNS name | 9.2.3.8.2.4.0.0.0.0.f.f.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa |
How to use it
- Paste addressesAdd one per line, up to 1,000. Short and already expanded forms both work. Brackets, ports, prefix lengths, zone IDs and URL hosts are accepted and kept around the address.
- Pick the form you needThe result shows the full 32-digit address. For a single address, the Other forms tab adds the version without leading zeros, the reverse DNS name, the nibbles and the binary string.
- Copy it into your configUse the
ip6.arpaname to create or query a PTR record. Use the expanded form for log searches or as a database sort key.
The ip6.arpa reverse name
Reverse DNS for IPv6 works one hex digit at a time, and a single hex digit is also called a nibble. To build the name, take the 32 digits of the expanded address, reverse their order, put a dot between each and add .ip6.arpa at the end. For 2001:db8::1, that gives:
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpaA PTR record at that name maps the address back to a hostname. To test it, use the reverse DNS lookup or run dig -x 2001:db8::1. To run reverse DNS for a whole prefix on your own nameservers, you host a zone at the shorter name that matches the prefix, cut at a hex-digit boundary, and whoever gave you the prefix delegates it to you. For 2001:db8::/32, that zone is 8.b.d.0.1.0.0.2.ip6.arpa. The IPv6 CIDR to range page shows the zone name for any prefix that ends on a hex-digit boundary.
Common problems
- Too few or too many groups. Without
::, an address needs exactly eight groups. Anything else gets an error that says how many groups it found. - Two double colons. Only one
::is allowed. The error points to where the second one starts. - A group that is too long or has a stray character. Each group holds at most four hex digits, using only 0 to 9 and a to f. The error points to the spot.
- Upper and lower case mixed. Both are valid. The output is lowercase.
- A dotted IPv4 ending.
::ffff:192.0.2.1expands to0000:0000:0000:0000:0000:ffff:c000:0201. The dotted part becomes two hex groups. - A prefix, not an address.
2001:db8::/32is a prefix. The address part is expanded and the length is kept as you wrote it. - Searching logs. Different tools write the same address differently. Search for both forms, or compress everything first.
How it works
The text is read as eight 16-bit groups. The position of :: decides how many zero groups to insert, and every group is padded with zeros to four digits. The reverse name comes from reversing the 32 digits. It is plain arithmetic on our server, with no network lookup. See RFC 4291 (address text forms), RFC 3596 (the ip6.arpa domain and PTR records for IPv6) and RFC 5952.
Questions people ask
How do I expand an IPv6 address?
Replace :: with enough 0000 groups to make eight groups in total, then pad every group to four digits with leading zeros. For example, 2001:db8::1 becomes 2001:0db8:0000:0000:0000:0000:0000:0001. The tool does this for you and checks that the result is exactly eight groups.
What does :: mean in an IPv6 address?
It stands for one or more groups of zeros in a row. It can appear only once in an address, and it hides exactly as many groups as are needed to reach eight. That is why two :: would be ambiguous: you could not tell how many zero groups each one stands for.
What is the ip6.arpa name used for?
It is where reverse DNS (PTR) records for IPv6 addresses live. The name has one label per hex digit, in reverse order, and ends in ip6.arpa. Mail servers, logging tools and dig -x use it to turn an address back into a hostname.
Why use the full form for sorting and searching?
Because short forms of the same address look different as text. 2001:db8::1 and 2001:0db8:0000:0000:0000:0000:0000:0001 are equal addresses, but they sort and match differently as strings. The expanded form has a fixed width, so it gives you a consistent key for sorting, grouping and searching.
What is the binary form good for?
It helps when you work out prefixes by hand or debug masks, because you can see every bit. Each hex digit is four bits, so each group of four digits is 16 bits. The tool shows the eight 16-bit groups separated by colons, which makes it easy to count where a /48 or /64 boundary falls.
How do I find the PTR record for an IPv6 address?
Use the reverse DNS lookup with the address, or run dig -x on the command line. Both build the ip6.arpa name for you. This page shows that name too, so you can check it or create the matching zone entry at your DNS host.
How do I shorten an address again?
Use the IPv6 compressor. It applies the canonical short form from RFC 5952: lowercase, no leading zeros, and :: for the longest run of zero groups. Use that form when you store or compare addresses as text. Keep the expanded form for places that need a fixed width, such as sort keys and log searches.
Use it from AI, the API or the command line
Every LookupOwl tool is also a free API and an MCP tool, with no key and no account. This one is ipv6_format. Please be kind to the rate limits.
curl "https://lookupowl.com/api/v1/tools/ipv6-format?q=2001%3Adb8%3A%3Aff00%3A42%3A8329"claude mcp add --transport http lookupowl https://lookupowl.com/mcp