Para marcar o aniversário do dia mundial do IPv6 , a Internet Society publicou uma campanha para desativar o IPv4 em 6 de junho de 2014 por um dia .
Os endereços IPv6 podem ser representados em sua forma longa como oito valores hexadecimais de 16 bits separados por dois pontos. Dependendo do endereço, eles também podem ser reduzidos, conforme descrito no item 2 da seção 2.2 Representação de texto dos endereços da RFC 3513 :
Para facilitar a escrita de endereços contendo zero bits, está disponível uma sintaxe especial para compactar os zeros. O uso de "::" indica um ou mais grupos de 16 bits de zeros. O "::" pode aparecer apenas uma vez em um endereço. O "::" também pode ser usado para compactar zeros à esquerda ou à direita em um endereço.
As entradas para esse desafio serão os programas que aceitarem exatamente um endereço IPv6 formatado no formato longo ou abreviado e exibirão o mesmo endereço nos formatos longo e curto, nessa ordem.
A entrada pode vir de argumentos de linha de comando, STDIN ou qualquer outra fonte de entrada que seja adequada à sua escolha de idioma.
Bibliotecas ou utilitários especificamente para analisar endereços IPv6 são proibidos (por exemplo, inet_ {ntop, pton} () ).
Se o endereço de entrada for inválido, a saída estará vazia (ou será exibida alguma mensagem de erro adequada indicando que o endereço é inválido )
Nos casos em que
::
ocorre encurtamento, apenas uma operação de encurtamento pode ocorrer para um determinado endereço. Se houver mais de uma potencial operação de encurtamento para um determinado endereço, a operação que fornecer o endereço mais curto geral deverá ser usada. Se houver um empate a esse respeito, a primeira operação será usada. Isso é ilustrado nos exemplos abaixo.
Exemplos:
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>
Como é um codegolf , a resposta mais curta em bytes em 6 de junho de 2014 será aceita como vencedor.
1::2:0:0:0:3
uma entrada possível?
1:0:0:2:2::3
. A saída reduzida seria idêntica a isso ou1::2:2:0:0:3
? O mesmo para entradas encurtadas de maneira não ideal.