Per celebrare l'anniversario della giornata mondiale IPv6 , Internet Society ha pubblicato una campagna per disattivare IPv4 il 6 giugno 2014 per One Day .
Gli indirizzi IPv6 possono essere rappresentati nella loro forma lunga come otto valori esadecimali a 16 bit separati da due punti. A seconda dell'indirizzo, possono anche essere abbreviati come descritto al punto 2 della sezione 2.2 Rappresentazione testuale degli indirizzi di RFC 3513 :
Per facilitare la scrittura di indirizzi contenenti zero bit è disponibile una sintassi speciale per comprimere gli zeri. L'uso di "::" indica uno o più gruppi di 16 bit di zeri. "::" può apparire solo una volta in un indirizzo. "::" può anche essere usato per comprimere zeri iniziali o finali in un indirizzo.
Le iscrizioni a questa sfida saranno programmi che accettano esattamente un indirizzo IPv6 formattato nel formato lungo o abbreviato e visualizzeranno lo stesso indirizzo in entrambi i formati lungo e corto, in quell'ordine.
L'input può provenire da argomenti della riga di comando, STDIN o qualsiasi altra sorgente di input adatta alla lingua scelta.
Le librerie o le utilità specifiche per l'analisi degli indirizzi IPv6 sono vietate (ad es. Inet_ {ntop, pton} () ).
Se l'indirizzo di input non è valido, l'output sarà vuoto (o viene fornito un messaggio di errore adatto che indica che l'indirizzo non è valido )
Nei casi in cui si
::
verifica un accorciamento, può verificarsi solo un'operazione di accorciamento per un determinato indirizzo. Se esistono più di una potenziale operazione di accorciamento per un determinato indirizzo, deve essere utilizzata l'operazione che fornisce l'indirizzo più corto complessivo. Se esiste un pareggio a questo proposito, verrà utilizzata la prima operazione. Questo è illustrato negli esempi seguenti.
Esempi:
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>
Questo è codegolf , quindi la risposta più breve in byte del 6 giugno 2014 sarà accettata come vincente.
1::2:0:0:0:3
possibile un input?
1:0:0:2:2::3
. L'output abbreviato sarebbe identico a quello o1::2:2:0:0:3
? Lo stesso per input non abbreviati in modo ottimale.