1256: D-右鸽邀你判ip

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:6 Solved:1

Description



右鸽最近在学计算机⽹络原理,所以想着把学到的知识跟你分享⼀下。

IPv6(Internet Protocol Version 6) 即互联⽹协议第六版, IPv6 的出现就是为了替代 IPv4 ,主要原因是 IPv4 的地址不够⽤。随着科技的发展,我们的⽣活⽔平不断提⾼,很多空调,⾳响,电视机都要上⽹,导致⽹络上IP地址不够⽤,所以升级成 IPv6 ,有点夸张的是, IPv6 就可以满⾜让每⼀个沙⼦都有编号地址可以上⽹。
下⾯简要说明⼀下 IPv4 地址和 IPv6 地址的特点。

IPv4 地址由⼗进制数和点("..")来表⽰,每个地址包含4个⼗进制数,其范围为 0 - 2550255, ⽤("..")分割。⽐如172.16.254.1172.16.254.1 。
同时,IPv4 地址内的数不会有前导 00 。⽐如,地址 172.16.254.01172.16.254.01 是不合法的。

IPv6 地址由 88 组 1616 进制的数字来表⽰,每组表⽰ 1616 ⽐特。这些组数字通过 ("::")分割。
⽐如, 2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:0000:0000:8a2e:0370:7334 是⼀个有效的地址。
⽽且,我们可以加⼊⼀些以 00 开头的数字(即允许有前导00的情况),字母可以使⽤⼤写,也可以是⼩写。
所以, 2001:db8:85a3:0:0:8A2E:0370:73342001:db8:85a3:0:0:8A2E:0370:7334 也是⼀个有效的 IPv6 地址 (即忽略 00 开头,忽略⼤⼩写)。
然⽽,我们不能因为某个组的值为 00 ,⽽使⽤⼀个空的组,以⾄于出现 (::::) 的情况。
⽐如,2001:0db8:85a3::8A2E:0370:73342001:0db8:85a3::8A2E:0370:7334 是⽆效的 IPv6 地址。
同时,在 IPv6 地址中,每组中的数字超过4位也是不被允许的,因为这样他就超过 1616 ⽐特了(即使超过的位是 00 也不被允许)。
⽐如, 02001:0db8:85a3:0000:0000:8a2e:0370:733402001:0db8:85a3:0000:0000:8a2e:0370:7334 是⽆效的,因为 0200102001 超过了 44 位。

右鸽不想让你养成⽩嫖的不良习惯,于是想让聪明的你即学即⽤,帮右鸽编写程序来验证输⼊的字符串是否是有效的 IPv4 或 IPv6 地址。


Input

输⼊⼀个整数 n(1n1000) 接下来的 n ⾏,每⾏输⼊⼀个需要判断的字符串。

Output

对于每⼀个字符串输出⼀⾏。
如果输⼊的字符串是有效的 IPv4 ,则输出 IPv4 ;
如果输⼊的字符串是有效的 IPv6 ,则输出 IPv6 ;
如果输⼊的字符串不合法,则输出 Invalid 。

Sample Input Copy

5
172.16.0.1
172.16.0.01
2001:0db8:85a3:0:0000:8A2E:0370:7334
2001:0db8:85a3:0:0000:8A2E:0370:733w
02001:0db8:85a3:0:0000:8a2e:0370:7334

Sample Output Copy

IPv4
Invalid
IPv6
Invalid
Invalid

HINT

给定的字符串⾥没有空格或者其他特殊字符 ( 既每个字符串中只包含字母及数字及":"和"." ) 。

对于前50%的数据:所有的ip地址都是合法的。
对于100%的数据: 存在不合法的ip地址。