/// /// Extracts the root domain /// /// james_symon@hotmail.com public static string GetRootDomain(string url) { var extensions = new[] { ".co.uk", ".com", ".net", ".org" };//valid domain extensions if (url.IndexOf("//") > -1) url = url.Substring(url.IndexOf("//") + 2);//remove 'http://', 'https://', 'ftp://' etc etc. if (url.IndexOf("/") > 2) url = url.Substring(0, url.IndexOf("/")); //remove '/subdir' from 'www.test.com/subdir' for (int i = url.Length; i > 0; i--)//work backwards { var possibleExtension = url.Substring(i); if (extensions.Any(a => a.Equals(possibleExtension))) { var extension = possibleExtension; var remainingUrl = url.Substring(0, i); var remainingUrlSections = remainingUrl.Split(new char[] { '.', '/' }, StringSplitOptions.RemoveEmptyEntries); if (remainingUrlSections.Length > 0) { url = remainingUrlSections[remainingUrlSections.Length - 1] + extension; break; } } } return url; }