Mo–Fr: 09:00–17:00 Sa–So: geschlossen
03578 310535 info@formality.de
FORMALITY Deutschland 01917 Kamenz
IPv6 Expand Tool
IPv6 Adressen expandieren (Full Notation)
Die IPv6 Expansion ist der Prozess, bei dem eine gekürzte Adresse wieder in ihre vollständige, 32 Zeichen lange hexadezimale Form (8 Blöcke zu je 4 Zeichen) überführt wird. Dies wird oft als Full Notation oder Uncompressed IPv6 bezeichnet.
Um eine IPv6 address to full form zu konvertieren, identifiziert das Tool den Double Colon (::) Operator. Dieser Platzhalter repräsentiert eine Sequenz von Null-Blöcken. Da eine valide IPv6-Adresse immer aus exakt 128 Bit besteht, füllt der Expander die fehlenden Segmente automatisch mit Nullen auf (Zero Padding).
Im zweiten Schritt werden die verbleibenden Blöcke mit führenden Nullen aufgefüllt. In der Kurzschreibweise werden Nullen am Anfang eines Blocks oft weggelassen (z. B. wird aus db8 wieder 0db8). Das Ziel ist es, dass jeder der acht Blöcke exakt vier Stellen aufweist.
Häufige Beispiele (Common Examples):
- Global Unicast:
2001:db8::1→2001:0db8:0000:0000:0000:0000:0000:0001 - Loopback (Local):
::1→0000:0000:0000:0000:0000:0000:0000:0001 - Unspecified:
::→0000:0000:0000:0000:0000:0000:0000:0000 - IPv4-mapped:
::ffff:192.168.1.1→0000:0000:0000:0000:0000:ffff:c0a8:0101 - Link-local:
fe80::1→fe80:0000:0000:0000:0000:0000:0000:0001
IPv6 Expander
Geben Sie eine gekürzte IPv6-Adresse ein, um sie vollständig auszuschreiben.
Code-Beispiele für Entwickler (Expansion)
So implementieren Sie die IPv6-Expansion in gängigen Sprachen unter Verwendung von Standard-Bibliotheken:
Python
import ipaddress
# .exploded liefert die vollständige 8-Block-Notation
print(ipaddress.IPv6Address('2001:db8::1').exploded)
# Ergebnis: 2001:0db8:0000:0000:0000:0000:0000:0001JavaScript/Node.js
// Manuelle Expansion (da keine native Browser-Funktion existiert)
function expandIPv6(ip) {
const parts = ip.split("::");
const left = parts[0].split(":").filter(x => x !== "");
const right = parts[1] ? parts[1].split(":").filter(x => x !== "") : [];
const missing = 8 - (left.length + right.length);
const full = [...left, ...new Array(missing).fill("0000"), ...right];
return full.map(p => p.padStart(4, "0")).join(":");
}
console.log(expandIPv6("2001:db8::1"));PHP
$ip = "2001:db8::1";
// Wandelt IP in Binär um und dann in einen formatierten Hex-String
$hex = unpack("H*", inet_pton($ip))[1];
echo implode(":", str_split($hex, 4));
// Ergebnis: 2001:0db8:0000:0000:0000:0000:0000:0001C# (.NET)
using System.Net;
IPAddress ip = IPAddress.Parse("2001:db8::1");
// Ab .NET 6+ gibt das Format-Flag "f" die unverkürzte Adresse aus
string expanded = ip.ToString("f");
// Alternativ für ältere Versionen via Bytes:
// string.Join(":", ip.GetAddressBytes().Select(b => b.ToString("x2")))Java
import java.net.Inet6Address;
// Da getHostAddress() oft komprimiert, nutzt man Formatierung:
InetAddress ip = InetAddress.getByName("2001:db8::1");
byte[] bytes = ip.getAddress();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i += 2) {
sb.append(String.format("%02x%02x%s", bytes[i], bytes[i+1], i < 14 ? ":" : ""));
}
System.out.println(sb.toString());PowerShell
$ip = [System.Net.IPAddress]::Parse("2001:db8::1")
# Nutzt die .NET Formatierung für die vollständige Adresse
$ip.ToString("f")
# Ergebnis: 2001:0db8:0000:0000:0000:0000:0000:0001Go (Golang)
import ( "net"; "fmt" )
ip := net.ParseIP("2001:db8::1")
// Manuelle Formatierung der 16 Bytes für die ausgeschriebene Form
fmt.Printf("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n",
ip[0], ip[1], ip[2], ip[3], ip[4], ip[5], ip[6], ip[7],
ip[8], ip[9], ip[10], ip[11], ip[12], ip[13], ip[14], ip[15])