域名查询

///

1<summary>   
2/// 从“中国万网( www.net.cn )”实现域名查询功能   
3/// </summary>

///

1<param name="Domain"/>

域名
///

1<param name="Ext"/>

后缀(cn|com|net|name|org|comcn|netcn|orgcn|govcn|info|biz|tv|cc)
/// 以上依次代表:.cn|.com|.net|.name|.org|.com.cn|.net.cn|.org.cn|.gov.cn|.info|.biz|.tv|.cc
///

1<returns></returns>

public static string Whois( string Domain, string Ext )
{
#region 这部分可能会变化,取决于“中国万网”是否改变查询方式和显示查询结果的那个网页的内容
const string cntURLB = "http://panda.www.net.cn/cgi-bin/Check.cgi?domain=";//http请求头部
const string cntURLM = "&ext="; //http请求中间部分(变量)
const string cntMark = "

 1<tr bgcolor='\"#b9d9ff\"'>"; //需要的"中国万网"返回信息的开始特征   
 2const string cntTableB = "<tr bgcolor='\"#993300\"'>"; //"中国万网"返回信息中的一个table的开始部分的特征   
 3  
 4//已知"中国万网"查询结果的三种情况的特征   
 5const string cntQn = "此域名不能注册";   
 6const string cntReg = "已被注册的域名";   
 7const string cntNotReg = "未被注册的域名";   
 8#endregion   
 9  
10#region 这个部分选用   
11//以下用来替换"中国万网"返回信息中table的样式   
12const string cntTableR = "<tr><td>";   
13const string cntTableE = "</td></tr>";   
14const string cntTable = "<table align="center" bgcolor='\"#F7F7F7\"' border="1" bordercolor='\"#FFFFFF\"' cellpadding='\"1\"' cellspacing='\"0\"'><tr>";   
15  
16//自定义查询结果,用于页面显示   
17const string cntAble = "恭喜你,这是一个";   
18const string cntNotConnect = "不能连接到服务器,请重试!";   
19#endregion   
20  
21string strResult = string.Empty;   
22  
23try   
24{   
25#region 这里执行查询   
26//从"中国万网"查询域名   
27string strURL = cntURLB + Domain + cntURLM + Ext;   
28//建立请求   
29WebRequest wRequest = WebRequest.Create( strURL );   
30// wRequest.Proxy = new WebProxy( "server", 8080 );//视情况设置代理   
31wRequest.Timeout = 30000;   
32WebResponse wResponse = wRequest.GetResponse();//执行请求   
33Stream responseStream = wResponse.GetResponseStream();//读取万网返回结果   
34StreamReader reader = new StreamReader( responseStream, Encoding.Default );   
35string responseHTML = reader.ReadToEnd();//将所有结果保存到字符串   
36wResponse.Close();   
37#endregion   
38  
39//取出万网查询结果   
40strResult = responseHTML.Substring( responseHTML.IndexOf( cntMark ), responseHTML.IndexOf( cntTableB ) - responseHTML.IndexOf( cntMark ) );   
41  
42#region 这个部分选用   
43//根据需要调整结果   
44strResult = cntTable + strResult + cntTableR;   
45if( responseHTML.IndexOf( cntQn ) &gt; -1 )   
46{   
47strResult += cntQn + "!" + cntTableE;   
48}   
49else if( responseHTML.IndexOf( cntReg ) &gt; -1 )   
50{   
51strResult += cntReg + "!" + cntTableE;   
52}   
53else if( responseHTML.IndexOf( cntNotReg ) &gt; -1 )   
54{   
55strResult += cntAble + cntNotReg + "!" + cntTableE;   
56}   
57else   
58{   
59strResult = responseHTML;   
60}   
61#endregion   
62}   
63catch( WebException )   
64{   
65strResult = cntNotConnect + "\n";   
66}   
67catch( UriFormatException err)   
68{   
69strResult = err.Message;   
70}   
71  
72return strResult;   
73}</tr></table></tr></tr>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus