В ознаменование годовщины Всемирного дня IPv6 , Internet Society опубликовало кампанию « Выключить IPv4 6 июня 2014 года на один день» .
Адреса IPv6 могут быть представлены в их длинной форме в виде восьми 16-битных шестнадцатеричных значений, разделенных двоеточиями. В зависимости от адреса, они также могут быть сокращены, как описано в пункте 2 раздела 2.2. Текстовое представление адресов RFC 3513 :
Чтобы упростить запись адресов, содержащих нулевые биты, имеется специальный синтаксис для сжатия нулей. Использование «::» указывает одну или несколько групп из 16 битов нулей. «::» может появляться только один раз в адресе. «::» также можно использовать для сжатия начальных или конечных нулей в адресе.
Записи на этот вызов будет программы , которые принимают ровно один IPv6 - адрес , отформатированный в длинной или укороченной формате, и будет отображать один и тот же адрес в обоих длинных и коротких форматов, в таком порядке.
Входные данные могут поступать из аргументов командной строки, STDIN или любого другого входного источника, который соответствует вашему выбору языка.
Библиотеки или утилиты, специально предназначенные для анализа адресов IPv6, запрещены (например, inet_ {ntop, pton} () ).
Если входной адрес недействителен, вывод будет пустым (или выдается какое-то подходящее сообщение об ошибке, указывающее, что адрес недействителен )
В тех случаях, когда
::
происходит сокращение, для данного адреса может выполняться только одна операция сокращения. Если для данного адреса существует более одной потенциальной операции сокращения, должна использоваться операция, которая дает общий кратчайший адрес. Если в этом отношении есть связь, будет использоваться первая операция. Это показано на примерах ниже.
Примеры:
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>
Это Codegolf , поэтому самый короткий ответ в байтах 6 июня 2014 года будет принят победителем.
1::2:0:0:0:3
ввод?
1:0:0:2:2::3
. Будет ли сокращенный результат идентичным этому или1::2:2:0:0:3
? То же самое для неоптимально сокращенного ввода.