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); }
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; }