using System; using System.Collections; using System.Net; namespace Netch.Utils { public static class DNS { /// /// 缓存 /// public static Hashtable Cache = new Hashtable(); /// /// 查询 /// /// 主机名 /// public static IPAddress Lookup(string hostname) { try { if (Cache.Contains(hostname)) { return Cache[hostname] as IPAddress; } var task = Dns.GetHostAddressesAsync(hostname); if (!task.Wait(1000)) { return null; } if (task.Result.Length == 0) { return null; } Cache.Add(hostname, task.Result[0]); return task.Result[0]; } catch (Exception) { return null; } } } }