Ejemplo n.º 1
0
    public static bool IsValidDomain(String domain)
    {
        Regex r = new Regex(IP_DOMAIN_REGEX, RegexOptions.IgnoreCase);
        Match m = r.Match(domain);

        if (m.Success)
        {
            IPAddress ipAddress;
            return(IPAddress.TryParse(m.Groups[1].ToString(), out ipAddress));
        }

        Boolean mappingInvalid = false;

        try
        {
            domain = new IdnMapping().GetAscii(domain);
        }
        catch (ArgumentException)
        {
            mappingInvalid = true;
        }

        if (mappingInvalid)
        {
            return(false);
        }

        if (Regex.IsMatch(domain, DOMAIN_NAME_REGEX, RegexOptions.IgnoreCase))
        {
            String[] group = domain.Split('.');
            if (group.Length > 2)
            {
                return(IsValidTld(group[2]));
            }
            return(IsValidTld(group[1]));
        }
        return(false);
    }
Ejemplo n.º 2
0
    public static bool IsValidDomain(String domain)
    {
        Regex r = new Regex(IP_DOMAIN_REGEX, RegexOptions.IgnoreCase);
        Match m = r.Match(domain);
        if (m.Success)
        {
            IPAddress ipAddress;
            return IPAddress.TryParse(m.Groups[1].ToString(), out ipAddress);
        }

        Boolean mappingInvalid = false;
        try
        {
            domain = new IdnMapping().GetAscii(domain);
        }
        catch (ArgumentException)
        {
            mappingInvalid = true;
        }

        if (mappingInvalid)
        {
            return false;
        }

        if (Regex.IsMatch(domain, DOMAIN_NAME_REGEX, RegexOptions.IgnoreCase))
        {
            String[] group = domain.Split('.');
            if (group.Length >2)
            {
                return IsValidTld(group[2]);
            }
            return IsValidTld(group[1]);
        }
        return false;
    }