IPv6 ↔ BigInt Converter

Konvertiert ipv6 Adressen zu/von 128-Bit Ganzzahlen

Quick Convert

Batch Input

Results

Results will appear here

About IPv6 Integers

IPv6 addresses are 128-bit integers, ranging from 0 to 2128-1 (340,282,366,920,938,463,463,374,607,431,768,211,455). This tool uses JavaScript's BigInt for precise handling of these large numbers.

Der IPv6-zu-BigInt-Konverter wandelt IPv6-Adressen zwischen hexadezimaler Doppelpunkt-Notation und ihrer zugrundeliegenden 128-Bit-Ganzzahldarstellung um und nutzt dabei BigInt fuer volle Praezision. Geben Sie eine Adresse wie 2001:db8::1 ein, um 42540766411282592856903984951653826561 zu erhalten, oder fuegen Sie eine grosse Dezimalzahl ein, um die entsprechende IPv6-Adresse sowohl in komprimierter als auch in expandierter Form zu erhalten.

BigInt fuer IPv6-Adressen verstehen

IPv4-Adressen sind 32-Bit-Zahlen, die bequem in einen Standard-Ganzzahltyp passen -- der groesste Wert liegt bei etwa 4,3 Milliarden, was im Bereich jedes modernen Zahlentyps einer Programmiersprache liegt. IPv6 ist eine voellig andere Geschichte. Mit 128 Bit umfasst der Adressraum von 0 bis 340.282.366.920.938.463.463.374.607.431.768.211.455 -- eine Zahl mit 39 Stellen. Kein Standard-64-Bit-Integer kann sie aufnehmen, und JavaScripts Number-Typ verliert die Praezision fuer Ganzzahlen groesser als etwa 9 Billiarden (2^53).

Deshalb gibt es BigInt. BigInt ist ein Ganzzahltyp mit beliebiger Praezision, verfuegbar in JavaScript, Python, Java und den meisten modernen Sprachen. Er kann Zahlen jeder Groesse ohne Rundung oder Praezisionsverlust darstellen und ist damit das richtige Werkzeug fuer IPv6-Adressarithmetik. Wenn Sie eine IPv6-Adresse in ihre numerische Form umwandeln, benoetigen Sie BigInt fuer ein exaktes Ergebnis. Die Verwendung eines regulaeren 64-Bit-Integers oder einer Gleitkommazahl wuerde den Wert stillschweigend runden und eine Adresse erzeugen, die der urspruenglichen aehnlich, aber nicht identisch ist -- ein subtiler Fehler, der sehr schwer zu finden sein kann.

Die praktischen Anwendungen der BigInt-IPv6-Konvertierung entsprechen denen der IPv4-zu-Integer-Konvertierung, aber der Massstab ist ein anderer. Datenbankspeicherung, Bereichsberechnungen, sequentielle Aufzaehlung und Subnetz-Grenzberechnung funktionieren konzeptionell gleich, erfordern aber BigInt-Arithmetik statt Standard-Ganzzahlmathematik. Wenn Sie eine IPv6-faehige Anwendung entwickeln, ist das Verstaendnis dieser Konvertierung grundlegend -- so gelangen Sie vom menschenlesbaren Doppelpunkt-Hex-Format zu etwas, womit eine Datenbank oder ein Algorithmus effizient arbeiten kann.

So konvertieren Sie IPv6 zu BigInt (und zurueck)

  1. Geben Sie eine IPv6-Adresse in beliebiger gueltiger Notation ein (komprimiert, expandiert oder gemischt) oder eine Dezimalzahl von 0 bis 2^128 - 1
  2. Klicken Sie auf Convert, um die aequivalente Darstellung im anderen Format zu sehen
  3. Sehen Sie den vollstaendigen BigInt-Wert, die wissenschaftliche Notationsannaeherung sowie sowohl die komprimierte als auch die expandierte IPv6-Form

Beispiele fuer die IPv6-zu-BigInt-Konvertierung

IPv6-AdresseBigInt-Wert
::0
::11
::ffff:192.168.1.1281473913978881
fe80::1338288524927261089654018896841347694593
2001:db8::142540766411282592856903984951653826561
2001:db8::ff00:42:832942540766411282592856904136881884209961
ff02::1338963523518870617245727861372981592065
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff340282366920938463463374607431768211455

Schritt-fuer-Schritt-Konvertierung: 2001:db8::1

Expandiert: 2001:0db8:0000:0000:0000:0000:0000:0001

Hex-Ziffern: 20010db8000000000000000000000001

BigInt:    0x20010db8000000000000000000000001
         = 42540766411282592856903984951653826561

Rueckkonvertierung: BigInt 1 zu ::1

BigInt:     1
Hex:        0x00000000000000000000000000000001
Gruppiert:  0000:0000:0000:0000:0000:0000:0000:0001
Komprimiert: ::1

Wann den IPv6-BigInt-Konverter verwenden

  • Datenbankspeicherung fuer IPv6 -- IPv6-Adressen als 128-Bit-Ganzzahlen in Datenbanken speichern, die grosse numerische Typen unterstuetzen (PostgreSQL numeric, MySQL DECIMAL(39,0) oder zwei BIGINT-Spalten fuer obere/untere 64-Bit-Haelften)
  • Adressbereichs-Arithmetik -- die Anzahl der Adressen in einem IPv6-Praefix berechnen mit 2^(128 - prefix_length), Operationen die BigInt-Praezision erfordern
  • Subnetz-Grenzberechnung -- die Netzwerkadresse durch Anwendung einer Bitmaske finden: BigInt_address & BigInt_mask, und die Broadcast-Adresse durch: BigInt_address | ~BigInt_mask
  • Sequentielle Adressaufzaehlung -- aufeinanderfolgende IPv6-Adressen durch Inkrementieren des BigInt-Werts generieren, nuetzlich fuer Scan- oder Zuweisungswerkzeuge
  • IPv6-faehiges Sortieren -- IPv6-Adressen numerisch durch Vergleich ihrer BigInt-Werte sortieren, wodurch die Komplexitaet des Vergleichs von Doppelpunkt-Hexadezimal-Zeichenketten vermieden wird
  • Adressraum-Visualisierung -- Praefix-Grenzen in numerische Bereiche umwandeln, um IPv6-Zuweisungen auf Zahlenlinien oder Heatmaps darzustellen

Wie die IPv6-zu-BigInt-Konvertierung funktioniert

Der 128-Bit-Adressraum

IPv6-Adressen sind 128-Bit-Werte, die Ganzzahlen in einem Bereich weit jenseits der Kapazitaet von Standard-Zahlentypen erzeugen:

EigenschaftWert
Bits128
Minimale Adresse:: = 0
Maximale Adresseffff:...:ffff = 340.282.366.920.938.463.463.374.607.431.768.211.455
Gesamtadressen2^128 = ~3,4 x 10^38

Standard-64-Bit-Ganzzahlen reichen maximal bis 2^63 - 1 (~9,2 x 10^18), was ungefaehr 3,7 x 10^19 Mal zu klein fuer IPv6 ist. JavaScripts Number.MAX_SAFE_INTEGER betraegt 2^53 - 1 (~9 x 10^15), noch begrenzter. BigInt ist erforderlich fuer verlustfreie IPv6-Adressarithmetik.

Konvertierungsalgorithmus

  1. Expandieren Sie die IPv6-Adresse zur vollstaendigen 8-Gruppen-Notation mit fuehrenden Nullen
  2. Verketten Sie alle Hex-Ziffern zu einer einzelnen 32-Zeichen-Hex-Zeichenkette
  3. Parsen Sie die Hex-Zeichenkette als Basis-16-BigInt-Wert
// JavaScript BigInt-Konvertierung
const ipv6 = "2001:0db8:0000:0000:0000:0000:0000:0001";
const hex = ipv6.replace(/:/g, "");           // "20010db8000000000000000000000001"
const bigint = BigInt("0x" + hex);            // 42540766411282592856903984951653826561n

Strategien zur Datenbankspeicherung

Da die meisten Datenbanken keinen nativen 128-Bit-Ganzzahltyp haben, sind gaengige Ansaetze:

-- PostgreSQL: NUMERIC fuer exakte 128-Bit-Speicherung verwenden
CREATE TABLE ipv6_addresses (
    id SERIAL PRIMARY KEY,
    address NUMERIC(39, 0) NOT NULL
);

-- MySQL: BINARY(16) fuer kompakte Speicherung verwenden
CREATE TABLE ipv6_addresses (
    id INT AUTO_INCREMENT PRIMARY KEY,
    address BINARY(16) NOT NULL
);

-- Alternative: In zwei 64-Bit-Haelften aufteilen
CREATE TABLE ipv6_addresses (
    id INT AUTO_INCREMENT PRIMARY KEY,
    address_high BIGINT UNSIGNED NOT NULL,
    address_low  BIGINT UNSIGNED NOT NULL
);

Praktische Hinweise fuer BigInt-IPv6-Operationen

Der haeufigste Fehler bei der Arbeit mit BigInt-IPv6-Werten ist das Mischen von BigInt- und regulaeren Number-Typen. In JavaScript sind BigInt und Number inkompatibel -- Sie koennen 1n nicht zu 1 addieren, ohne eine explizite Konvertierung durchzufuehren. Das bedeutet, dass Ihre gesamte Adressarithmetik-Pipeline durchgaengig BigInt verwenden muss. Wenn eine Funktion einen Number zurueckgibt, wo ein BigInt erwartet wird, wirft das Ergebnis entweder einen TypeError oder verliert stillschweigend die Praezision, je nach Sprache und Kontext.

Beim Speichern von IPv6-Adressen in einer Datenbank sollten Sie Ihre Abfragemuster beruecksichtigen, bevor Sie eine Speicherstrategie waehlen. PostgreSQLs NUMERIC(39,0) speichert den vollstaendigen BigInt und unterstuetzt Bereichsabfragen, ist aber langsamer als binaere Speicherung fuer exakte Abfragen. MySQLs BINARY(16) ist kompakt (genau 16 Bytes) und schnell fuer exakte Abfragen, aber Bereichsabfragen erfordern eine Konvertierung in numerische Werte. Der Zwei-Spalten-BIGINT-Ansatz teilt die Adresse in obere und untere 64-Bit-Haelften auf, was gut fuer Bereichsabfragen funktioniert, wenn der Grossteil Ihrer Filterung auf den Netzwerkteil (obere 64 Bit) entfaellt. Waehlen Sie die Strategie, die zu Ihren tatsaechlichen Abfragemustern passt, nicht die, die im Schema am saubersten aussieht.

Fuer Praefixgroessen-Berechnungen denken Sie daran, dass IPv6-Zahlen sehr schnell sehr gross werden. Ein /64-Praefix enthaelt 2^64 Adressen -- etwa 18,4 Trillionen. Ein /48 enthaelt 2^80 Adressen. Diese Zahlen sind nuetzlich, um den Umfang von IPv6 zu verstehen, aber fuer die praktische Kapazitaetsplanung sind sie selten relevant. Niemand wird in einem /64 keine Adressen mehr haben, daher geht es meist darum, wie viele /64-Subnetze man braucht, nicht wie viele Adressen in jedem einzelnen sind. Verwenden Sie BigInt-Arithmetik fuer Grenzberechnungen, denken Sie aber in Praefixanzahlen fuer die Planung.

Haeufig gestellte Fragen

Warum kann ich fuer IPv6-Adressen keine regulaere JavaScript-Zahl verwenden?

JavaScript-Zahlen sind 64-Bit-IEEE-754-Gleitkommawerte, die die Praezision fuer Ganzzahlen groesser als 2^53 (9.007.199.254.740.992) verlieren. IPv6-Adressen koennen 2^128 erreichen, was ungefaehr 10^38 entspricht -- weit jenseits des sicheren Ganzzahlbereichs. Die Verwendung von Number wuerde den Wert stillschweigend runden und falsche Adresskonvertierungen erzeugen. BigInt bietet Ganzzahlen mit beliebiger Praezision ohne Rundung.

Wie berechne ich die Anzahl der Adressen in einem IPv6-Praefix?

Verwenden Sie BigInt-Potenzierung: 2n ** BigInt(128 - prefix_length). Zum Beispiel enthaelt ein /64-Praefix 2n ** 64n = 18.446.744.073.709.551.616 Adressen. Ein /48 enthaelt 2n ** 80n = 1.208.925.819.614.629.174.706.176 Adressen. Diese Zahlen sind zu gross fuer Standard-Ganzzahltypen, aber mit BigInt unkompliziert.

Gibt es Leistungseinbussen bei der Verwendung von BigInt statt Number?

Ja. BigInt-Operationen sind langsamer als native Number-Operationen, da sie Arithmetik mit beliebiger Praezision erfordern. Fuer die meisten Netzwerkanwendungen -- Adresskonvertierung, Bereichsberechnung, Wertevergleich -- ist der Leistungsunterschied vernachlaessigbar. BigInt-Arithmetik wird erst merklich langsamer, wenn Millionen von Operationen in engen Schleifen durchgefuehrt werden, was bei Adressverwaltungsaufgaben unueblich ist.

Welchen Datenbanktyp sollte ich fuer IPv6-Adressen verwenden?

Das haengt von Ihrem Anwendungsfall ab. PostgreSQLs native inet- oder cidr-Typen sind die beste Wahl, wenn Sie PostgreSQL verwenden, da sie IPv6 nativ mit eingebauten Operatoren verarbeiten. Fuer MySQL ist BINARY(16) kompakt und effizient. Fuer datenbankunabhaengige Portabilitaet funktionieren DECIMAL(39,0) oder NUMERIC(39,0) ueberall und unterstuetzen Bereichsabfragen, obwohl sie mehr Speicherplatz benoetigen als binaere Alternativen.

Kann ich IPv4-gemappte IPv6-Adressen wie ::ffff:192.168.1.1 konvertieren?

Ja. Das Tool expandiert zunaechst die gemischte Notation zur vollstaendigen Hexadezimalform (0000:0000:0000:0000:0000:ffff:c0a8:0101) und konvertiert dann normal zu BigInt. Der resultierende Wert ist 281473913978881, der im IPv4-gemappten Bereich (::ffff:0:0/96) liegt.

Verwandte Tools

IPparse•Kostenlose Netzwerk- & Subnetz-Rechner-Tools

© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First • No Data Collected