if(domain=="" || domain.IndexOf(",")!=-1|| domain.IndexOf(";")!=-1|| domain.IndexOf("_")!=-1|| domain.IndexOf(".")==-1) { result="Please enter a valid domain name."; } else { address=domain.IndexOf("."); ext=domain.Substring(address);
switch (ext) { case ".com": case ".net": case ".org": default: server="whois.crsnic.net"; //server="whois.internic.net"; break; case ".biz": case ".info": case ".mil": server="whois.networksolutions.com"; break; case ".edu": server="whois.educause.net"; break; case ".cn": case ".com.cn": case ".net.cn": case ".org.cn": //case ".gov.cn":
case ".bj.cn": case ".sh.cn": case ".tj.cn": case ".cq.cn": case ".he.cn": case ".nm.cn": case ".ln.cn": case ".jl.cn": case ".hl.cn": case ".js.cn": case ".zj.cn": case ".ah.cn": case ".hb.cn": case ".hn.cn": case ".gd.cn": case ".gx.cn": case ".hi.cn": case ".sc.cn": case ".gz.cn": case ".yn.cn": case ".xz.cn": case ".sn.cn": case ".gs.cn": case ".qh.cn": case ".nx.cn": case ".xj.cn": case ".tw.cn": case ".hk.cn": case ".mo.cn": server="whois.cnnic.net.cn"; break; }
//starting lookup UTF8Encoding utf8 = new UTF8Encoding(); // Connect to the whois server TcpClient tcpClient = new TcpClient(); tcpClient.Connect(server,port); NetworkStream networkStream = tcpClient.GetStream(); // Send the domain name to the whois server
domain=domain.Replace("0x00",""); byte[] buffer=Encoding.GetEncoding("GB2312").GetBytes(domain + "\r\n"); //byte[] buffer = utf8.GetBytes(domain + "\r\n"); networkStream.Write(buffer,0,buffer.Length); // Read back the results buffer = new byte[10240];
int i = networkStream.Read(buffer,0,buffer.Length); while ( i > 0) { i = networkStream.Read(buffer,0,buffer.Length); result += utf8.GetString(buffer); //result +=Encoding.GetEncoding("GB2312").GetString(buffer); } networkStream.Close(); tcpClient.Close(); } //return the lookup resutlt result=result.Replace("\u0000",""); return result; }
catch(Exception e) { return e.Message; //return "Sorry.Lookup is false.Please check the format of domain or internet connection."; }
http://dev.rdxx.com/NET/CSharp/2002-8/23/083453805.shtml
http://www.sudu.cn/info/html/edu/net/20071227/50614.html
http://dev.21tx.com/2004/09/04/10372.html
在这段代码中,程序查询以TextBox1内容为域名得主机是否存在,存在的话在TextBox2中显示该主机ip,否则在TextBox2中显示"Unkown Hostname"
System.Net.IPHostEntry hostip;
System.Net.IPAddress hostaddr;
try
{
hostip=System.Net.Dns.GetHostByName(textBox1.Text);
hostaddr=hostip.AddressList[0];
textBox2.Text=hostaddr.ToString();
}
catch (System.Exception excp)
{
textBox2.Text="Unknown Hostname";
}
详细信息,清查阅MSDN中的文章:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemNetDnsClassTopic.asp
{
try
{
string result="";
string server="whois.internic.net";
string ext=".com";
int port=43;
int address=-1;
string domain=strDomain.Trim().ToLower();
if(domain.StartsWith("www."))
{
domain=domain.Substring(4,domain.Length-4);
}
if(domain=="" || domain.IndexOf(",")!=-1|| domain.IndexOf(";")!=-1|| domain.IndexOf("_")!=-1|| domain.IndexOf(".")==-1)
{
result="Please enter a valid domain name.";
}
else
{
address=domain.IndexOf(".");
ext=domain.Substring(address);
switch (ext)
{
case ".com":
case ".net":
case ".org":
default:
server="whois.crsnic.net";
//server="whois.internic.net";
break;
case ".biz":
case ".info":
case ".mil":
server="whois.networksolutions.com";
break;
case ".edu":
server="whois.educause.net";
break;
case ".cn":
case ".com.cn":
case ".net.cn":
case ".org.cn":
//case ".gov.cn":
case ".bj.cn":
case ".sh.cn":
case ".tj.cn":
case ".cq.cn":
case ".he.cn":
case ".nm.cn":
case ".ln.cn":
case ".jl.cn":
case ".hl.cn":
case ".js.cn":
case ".zj.cn":
case ".ah.cn":
case ".hb.cn":
case ".hn.cn":
case ".gd.cn":
case ".gx.cn":
case ".hi.cn":
case ".sc.cn":
case ".gz.cn":
case ".yn.cn":
case ".xz.cn":
case ".sn.cn":
case ".gs.cn":
case ".qh.cn":
case ".nx.cn":
case ".xj.cn":
case ".tw.cn":
case ".hk.cn":
case ".mo.cn":
server="whois.cnnic.net.cn";
break;
}
//starting lookup
UTF8Encoding utf8 = new UTF8Encoding();
// Connect to the whois server
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(server,port);
NetworkStream networkStream = tcpClient.GetStream();
// Send the domain name to the whois server
domain=domain.Replace("0x00","");
byte[] buffer=Encoding.GetEncoding("GB2312").GetBytes(domain + "\r\n");
//byte[] buffer = utf8.GetBytes(domain + "\r\n");
networkStream.Write(buffer,0,buffer.Length);
// Read back the results
buffer = new byte[10240];
int i = networkStream.Read(buffer,0,buffer.Length);
while ( i > 0)
{
i = networkStream.Read(buffer,0,buffer.Length);
result += utf8.GetString(buffer);
//result +=Encoding.GetEncoding("GB2312").GetString(buffer);
}
networkStream.Close();
tcpClient.Close();
}
//return the lookup resutlt
result=result.Replace("\u0000","");
return result;
}
catch(Exception e)
{
return e.Message;
//return "Sorry.Lookup is false.Please check the format of domain or internet connection.";
}
}
/// GET方式发送请求
/// </summary>
/// <param name="requestUrl">请求地址</param>
/// <returns>响应字符串</returns>
public string SendRequest( string requestUrl )
{
HttpWebRequest httpWebRequest = ( HttpWebRequest ) WebRequest.Create( requestUrl );
httpWebRequest.Method = "GET";
WebResponse webResponse = httpWebRequest.GetResponse();
StreamReader responseStream = new StreamReader( webResponse.GetResponseStream(), System.Text.Encoding.UTF8 );
_responseStr = responseStream.ReadToEnd();
webResponse.Close();
responseStream.Close();
return _responseStr;
}