域名查询

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

/// <summary>

/// 从“中国万网(www.net.cn)”实现域名查询功能

/// </summary>

/// <param name="Domain">域名</param>

/// <param name="Ext">后缀(cn|com|net|name|org|comcn|netcn|orgcn|govcn|info|biz|tv|cc)</param>

/// 以上依次代表:.cn|.com|.net|.name|.org|.com.cn|.net.cn|.org.cn|.gov.cn|.info|.biz|.tv|.cc

/// <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 = "<tr bgcolor=\"#b9d9ff\">"; //需要的"中国万网"返回信息的开始特征

const string cntTableB = "<tr bgcolor=\"#993300\">"; //"中国万网"返回信息中的一个table的开始部分的特征

//已知"中国万网"查询结果的三种情况的特征

const string cntQn = "此域名不能注册";

const string cntReg = "已被注册的域名";

const string cntNotReg = "未被注册的域名";

#endregion

#region 这个部分选用

//以下用来替换"中国万网"返回信息中table的样式

const string cntTableR = "<tr><td>";

const string cntTableE = "</td></tr></table>";

const string cntTable = "<table align=center border=1 bordercolor=\"#FFFFFF\" cellpadding=\"1\" cellspacing=\"0\" bgcolor=\"#F7F7F7\"><tr>";

//自定义查询结果,用于页面显示

const string cntAble = "恭喜你,这是一个";

const string cntNotConnect = "不能连接到服务器,请重试!";

#endregion

string strResult = string.Empty;

try

{

#region 这里执行查询

//从"中国万网"查询域名

string strURL = cntURLB + Domain + cntURLM + Ext;

//建立请求

WebRequest wRequest = WebRequest.Create( strURL );

// wRequest.Proxy = new WebProxy( "server", 8080 );//视情况设置代理

wRequest.Timeout = 30000;

WebResponse wResponse = wRequest.GetResponse();//执行请求

Stream responseStream = wResponse.GetResponseStream();//读取万网返回结果

StreamReader reader = new StreamReader( responseStream, Encoding.Default );

string responseHTML = reader.ReadToEnd();//将所有结果保存到字符串

wResponse.Close();

#endregion

//取出万网查询结果

strResult = responseHTML.Substring( responseHTML.IndexOf( cntMark ), responseHTML.IndexOf( cntTableB ) - responseHTML.IndexOf( cntMark ) );

#region 这个部分选用

//根据需要调整结果

strResult = cntTable + strResult + cntTableR;

if( responseHTML.IndexOf( cntQn ) > -1 )

{

strResult += cntQn + "!" + cntTableE;

}

else if( responseHTML.IndexOf( cntReg ) > -1 )

{

strResult += cntReg + "!" + cntTableE;

}

else if( responseHTML.IndexOf( cntNotReg ) > -1 )

{

strResult += cntAble + cntNotReg + "!" + cntTableE;

}

else

{

strResult = responseHTML;

}

#endregion

}

catch( WebException )

{

strResult = cntNotConnect + "\n";

}

catch( UriFormatException err)

{

strResult = err.Message;

}

return strResult;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航