using System.Collections.Generic;
using System.Runtime.Caching;
public static void Main()
var cnameDomain = "www.google.com";
var ips = DnsTesting.GetIpsForCname(cnameDomain);
Console.WriteLine("ips: " + String.Join(",", ips.ToList()));
ips = DnsTesting.GetIpsForCname(cnameDomain);
Console.WriteLine("ips: " + String.Join(",", ips.ToList()));
private static MemoryCache cache = MemoryCache.Default;
public static IPAddress[] GetIpsForCname(string cnameDomain)
string cacheKey = "ips_" + cnameDomain.ToLower();
var cachedData = cache.Get(cacheKey) as IPAddress[];
Console.WriteLine("Cache miss! Fetching data...");
var ip = System.Net.Dns.GetHostEntry(cnameDomain, System.Net.Sockets.AddressFamily.Unspecified);
cachedData = ip.AddressList;
cachedData = new IPAddress[] { };
CacheItemPolicy policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(ttl) };
cache.Add(cacheKey, cachedData, policy);
Console.WriteLine("Cache hit! Using cached data...");