Normalized IPv6 addresses are required for upload into DataX. IPv6 addresses must be normalized according to RFC 5952 normalization rules, so that the data can be 100% accurately matched after encryption. If IPv6 addresses are not normalized, a single IP address can be written in multiple valid formats (e.g., 2001:db8:0:0::1 and 2001:0db8::0001).
Format | Description | Normalized Example |
|---|---|---|
Full IPv6 Address | 128-bit address, maximally compressed per RFC 5952 rules | 2001:db8::1 |
Important
Submitting /64 prefixes or other CIDR blocks is not supported.
IPv4-Mapped IPv6: Do not submit addresses like ::ffff:192.168.1.1. Please hash the original IPv4 address instead.
Normalization Rules (RFC 5952)
Normalize IPv6 addresses as follows:
Suppress Leading Zeros: Leading zeros in each 16-bit group must be removed.
2001:0db8 → 2001:db8
Longest Zero Run (::): Use :: to replace the longest consecutive sequence of all-zero groups.
2001:db8:0:0:0:0:0:1 → 2001:db8::1
Tie-breaking: If there are two zero runs of equal length, compress the first (leftmost) one.
2001:db8:0:0:1:0:0:1 → 2001:db8::1:0:0:1
No Single Group Compression: Do not use :: to replace a single 16-bit zero group. Use :0: instead.
2001:db8:0:1:0:0:0:1 → 2001:db8:0:1::1
Lowercase: All hexadecimal characters must be lowercase.
2001:DB8:AAAA::1 → 2001:db8:aaaa::1
Verify Normalized IPv6 Addresses
The normalized IPv6 address must be verified using SHA256 hashing. The hash input must be the UTF-8 encoded normalized string with no trailing newline.
To Verify the Normalized IPv6 Address:
Run echo -n "2001:db8::1" | sha256sum in the terminal. The output must be 5afd19e...1ed536. If it differs, the normalization or encoding is wrong.
Important
Trailing Newline
Many echo commands add a \n which completely changes the hash. Always use echo -n.
Examples of Normalized IPs
The following are examples of normalized IPv6 addresses with their hash results.
Normalized Value | SHA256 Hash Result |
|---|---|
2001:db8::1 | 5afd19e856d1c18d17d600dfd2b5f534992333985e126c2a951047102c1ed536 |
2001:db8:aaaa:1::1 | a26075760baa14c6db85931695017ae4e20b56b01b017ceacbd5c6fe2f69eecc |
fe80::202:b3ff:fe1e:8329 | a63b8244f25c80d6c736ddc532c28a17a448543b6b5e9dbff39d5c3187822c97 |
2001:db8:0:1::1 | a81588f63cc78f25925f96562007801a6b9bd628529c6812f6b968ff4ef03b81 |