Para conmemorar el aniversario del día mundial de IPv6 , Internet Society ha publicado una campaña para desactivar IPv4 el 6 de junio de 2014 durante un día .
Las direcciones IPv6 pueden representarse en su forma larga como ocho valores hexadecimales de 16 bits separados por dos puntos. Dependiendo de la dirección, también se pueden acortar como se describe en el elemento 2 de la sección 2.2 Representación de texto de direcciones de RFC 3513 :
Para facilitar la escritura de direcciones que contengan cero bits, hay disponible una sintaxis especial para comprimir los ceros. El uso de "::" indica uno o más grupos de 16 bits de ceros. El "::" solo puede aparecer una vez en una dirección. El "::" también se puede utilizar para comprimir ceros iniciales o finales en una dirección.
Las entradas a este reto serán los programas que aceptan exactamente una dirección IPv6 formateado en el formato largo o acortada, y mostrarán la misma dirección en ambos formatos largos y cortos, en ese orden.
La entrada puede provenir de argumentos de línea de comandos, STDIN o cualquier otra fuente de entrada que se adapte a su elección de idioma.
Las bibliotecas o utilidades específicamente para analizar direcciones IPv6 están prohibidas (por ejemplo, inet_ {ntop, pton} () ).
Si la dirección de entrada no es válida, la salida estará vacía (o aparece un mensaje de error adecuado que indica que la dirección no es válida )
En los casos en que se
::
produce el acortamiento, solo puede ocurrir una operación de acortamiento para una dirección determinada. Si hay más de una posible operación de acortamiento para una dirección determinada, se debe utilizar la operación que proporciona la dirección más corta en general. Si hay un empate a este respecto, se utilizará la primera operación. Esto se ilustra en los ejemplos a continuación.
Ejemplos:
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>
Este es codegolf , por lo que la respuesta más corta en bytes del 6 de junio de 2014 será aceptada como ganadora.
1::2:0:0:0:3
una entrada posible?
1:0:0:2:2::3
. ¿La salida acortada sería idéntica a esa o1::2:2:0:0:3
? Lo mismo para la entrada no acortada de manera óptima.