#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 验证IP地址
# @param IP string字符串 一个IP地址字符串
# @return string字符串
#
import re
class Solution:
    def solve(self , IP: str) -> str:
        # write code here
        ip=IP.split('.')
        ipv6s=IP.split(':')
        if len(ip) ==  4:
            for ip1 in ip:
                if not ip1.isdigit():
                    return 'Neither'
                elif int(ip1[0]) == 0:
                    return 'Neither'
                elif int(ip1)<256:
                    continue
                else:
                    return 'Neither'
            return 'IPv4'
        elif len(ipv6s) == 8:
            for ipv6 in ipv6s:
                if ipv6 == '':
                    return 'Neither'
                elif len(ipv6) >4:
                    return 'Neither'
                elif ipv6.isdigit() and len(ipv6) >1 and int(ipv6) == 0:
                    return 'Neither'
                if not re.match(r'^[0-9a-fA-F]{1,4}$', ipv6):
                    return 'Neither'
                else:
                    continue
            return 'IPv6'
        else:
            return 'Neither'