Zum Jahrestag des Welt-IPv6-Tages hat die Internet Society am 6. Juni 2014 eine Kampagne zum einmaligen Deaktivieren von IPv4 veröffentlicht .
IPv6-Adressen können in ihrer langen Form als acht durch Doppelpunkte getrennte 16-Bit-Hexadezimalwerte dargestellt werden. Abhängig von der Adresse können sie auch wie in Punkt 2 von Abschnitt 2.2 Textdarstellung von Adressen von RFC 3513 beschrieben gekürzt werden :
Um das Schreiben von Adressen mit Null-Bits zu vereinfachen, steht eine spezielle Syntax zum Komprimieren der Nullen zur Verfügung. Die Verwendung von "::" gibt eine oder mehrere Gruppen von 16 Bit Nullen an. Das "::" darf in einer Adresse nur einmal vorkommen. Das "::" kann auch verwendet werden, um führende oder nachfolgende Nullen in einer Adresse zu komprimieren.
Beiträge zu dieser Herausforderung sind Programme, die genau eine IPv6-Adresse akzeptieren, die entweder im langen oder im verkürzten Format formatiert ist, und die die gleiche Adresse sowohl im langen als auch im kurzen Format in dieser Reihenfolge anzeigen .
Die Eingabe kann von Befehlszeilenargumenten, STDIN oder einer anderen Eingabequelle stammen, die für Ihre Sprachauswahl geeignet ist.
Bibliotheken oder Dienstprogramme speziell zum Parsen von IPv6-Adressen sind gesperrt (z. B. inet_ {ntop, pton} () ).
Wenn die Eingabeadresse ungültig ist, ist die Ausgabe leer (oder es wird eine geeignete Fehlermeldung ausgegeben, die angibt, dass die Adresse ungültig ist).
In Fällen, in denen eine
::
Verkürzung auftritt, kann für eine bestimmte Adresse nur eine Verkürzungsoperation ausgeführt werden. Wenn es für eine Adresse mehr als eine mögliche Kürzungsoperation gibt, muss die Operation verwendet werden, die die insgesamt kürzeste Adresse angibt. Wenn diesbezüglich ein Gleichstand besteht, wird die erste Operation verwendet. Dies wird in den folgenden Beispielen veranschaulicht.
Beispiele:
Input Output
1080:0:0:0:8:800:200C:417A 1080:0:0:0:8:800:200C:417A
1080::8:800:200C:417A
FF01::101 FF01:0:0:0:0:0:0:101
FF01::101
0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:1
::1
:: 0:0:0:0:0:0:0:0
::
1:0:0:2:0:0:0:3 1:0:0:2:0:0:0:3
1:0:0:2::3
1:0:0:8:8:0:0:3 1:0:0:8:8:0:0:3
1::8:8:0:0:3
1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8
1:2:3:4:5:6:7:8
ABCD:1234 <Invalid address format - no output>
ABCDE::1234 <Invalid address format - no output>
1:2:3:4:5:6:7:8:9 <Invalid address format - no output>
:::1 <Invalid address format - no output>
codegolf puzzle <Invalid address format - no output>
Dies ist Codegolf , daher wird die kürzeste Antwort in Bytes am 6. Juni 2014 als Gewinner akzeptiert.
1::2:0:0:0:3
eine Eingabe möglich?
1:0:0:2:2::3
. Wäre die verkürzte Ausgabe identisch mit der oder1::2:2:0:0:3
? Gleiches gilt für nicht optimal verkürzte Eingaben.