|
中国域名投资论坛(CDIF) 管理员
  
WWW.CDIF.NET.CN
|
.NET实现域名查询功能
///
<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;
}
|