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