.Net获取域名whois信息 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; namespace BLL { public class Whois { /**/ /// <summary> /// 域名注册查询 /// </summary> /// <param name="domain">输入域名,不包含www</param> /// <returns></returns> public static string Get(string domain) { if (domain == null) throw new ArgumentNullException(); int ccStart = domain.LastIndexOf("."); if (ccStart < 0 || ccStart == domain.Length) throw new ArgumentException(); string ret = ""; Socket s = null; try { string cc = domain.Substring(ccStart + 1); s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Connect(new IPEndPoint(Dns.Resolve(cc + ".whois-servers.net").AddressList[0], 43)); s.Send(Encoding.ASCII.GetBytes(domain + "/r/n")); byte[] buffer = new byte[1024]; int recv = s.Receive(buffer); while (recv > 0) { ret += Encoding.UTF8.GetString(buffer, 0, recv); recv = s.Receive(buffer); } s.Shutdown(SocketShutdown.Both); } catch { throw new SocketException(); } finally { if (s != null) s.Close(); } return ret; } } }