Aby uczcić rocznicę Światowego dnia IPv6 , Towarzystwo Internetowe opublikowało kampanię Wyłącz IPv4 6 czerwca 2014 r. Na jeden dzień .
Adresy IPv6 mogą być reprezentowane w swojej długiej formie jako osiem 16-bitowych wartości szesnastkowych oddzielonych dwukropkami. W zależności od adresu można je również skrócić, jak opisano w punkcie 2 sekcji 2.2 Tekstowa reprezentacja adresów RFC 3513 :
Aby ułatwić pisanie adresów zawierających bity zerowe, dostępna jest specjalna składnia do kompresji zer. Użycie „::” oznacza jedną lub więcej grup 16 bitów zer. Znak „::” może pojawić się tylko raz w adresie. Znak „::” może także służyć do kompresji zer wiodących lub końcowych w adresie.
Zgłoszenia do tego wyzwania będą dotyczyły programów, które akceptują dokładnie jeden adres IPv6 sformatowany w formacie długim lub skróconym i wyświetlą ten sam adres zarówno w formacie długim, jak i krótkim, w tej kolejności.
Dane wejściowe mogą pochodzić z argumentów wiersza polecenia, STDIN lub dowolnego innego źródła wejściowego, które odpowiada Twojemu językowi.
Biblioteki lub narzędzia specjalnie do analizowania adresów IPv6 są zakazane (np. Inet_ {ntop, pton} () ).
Jeśli adres wejściowy jest nieprawidłowy, dane wyjściowe będą puste (lub zostanie wyświetlony odpowiedni komunikat o błędzie wskazujący, że adres jest nieprawidłowy )
W przypadkach, w których
::
występuje skrócenie, dla danego adresu może wystąpić tylko jedna operacja skracania. Jeśli dla danego adresu istnieje więcej niż jedna potencjalna operacja skracania, należy użyć operacji, która daje ogólny najkrótszy adres. Jeśli w tym względzie istnieje remis, zostanie użyta pierwsza operacja. Ilustrują to poniższe przykłady.
Przykłady:
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>
To jest codegolf , więc najkrótsza odpowiedź w bajtach 6 czerwca 2014 roku zostanie zaakceptowana jako zwycięzca.
1::2:0:0:0:3
to możliwe wejście?
1:0:0:2:2::3
. Czy skrócona wydajność byłaby identyczna z tym1::2:2:0:0:3
? To samo dotyczy nieoptymalnie skróconego wejścia.