Esempio n. 1
0
def detType(in_val):

    val = str(in_val)

    #::Email
    email = re.compile(".*\[@\][a-z0-9\-]{1,}\.[a-z0-9\-]{1,}")

    #::IP
    ipv4 = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")

    #::CIDR
    cidr = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}$")

    #::Range
    v4range = re.compile(
        "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\-\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"
    )

    #::Domain
    dom = re.compile("([a-z0-9\-]{1,}\.?)+\.[a-z0-9\-]{1,}$")

    if email.match(val):
        e = EmailAddress(val)
        return e

    if ipv4.match(val):
        e = IPv4Address(val)
        return e

    if cidr.match(val):
        e = CIDR(val)
        return e

    if v4range.match(val):
        e = Range(val)
        return e

    if dom.match(val):
        e = Domain(val)
        return e

    if re.match("^([a-z]*)://", val, re.M | re.I):
        e = URL(val)
        e.url = val
        return e