5
2014年世界IPv6日
为纪念世界IPv6日的周年纪念日,互联网协会在2014年6月6日发布了一项“关闭IPv4的活动”,为期一天。 IPv6地址可以长格式表示为八个冒号分隔的16位十六进制值。根据地址的不同,它们也可以按照RFC 3513的2.2节的文本文本表示中的第 2项进行缩短: 为了使写入包含零位的地址更容易,可以使用特殊语法来压缩零。“ ::”的使用表示一组或多组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 …