public static void Main()
var t1 = GetDomains(new Uri("http://client.example.com"));
Console.WriteLine(t1.Item1);
Console.WriteLine(t1.Item2);
var t2 = GetDomains(new Uri("http://program.live.example.com"));
Console.WriteLine(t2.Item1);
Console.WriteLine(t2.Item2);
var t3 = GetDomains(new Uri("http://sample.local.example.com "));
Console.WriteLine(t3.Item1);
Console.WriteLine(t3.Item2);
var t4 = GetDomains(new Uri("http://test.dev.example.com"));
Console.WriteLine(t4.Item1);
Console.WriteLine(t4.Item2);
public static Tuple<string, string> GetDomains(Uri url)
var domains = url.Host.Substring(0, url.Host.LastIndexOf(".")).Split('.');
var subDomain = string.Join("/", domains.Take(domains.Length - 1));
var mainDomain = domains.Last();
return Tuple.Create(mainDomain, subDomain);