仰天一笑(Ansonxuyu),专业从事软件定制开发、Web软件开发,网站建设,网络推广,APP开发,微博应用开发,微信应用开发,电子商务开发,物联网开发等技术。
互联网8年风雨,愿在此交朋识友,交流心得,分享技术知识(策划/研发/运营/推广/合作)!QQ:943530498


仰天一笑

昨日不悔,今日勿失,明日莫忧! —徐羽

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
/// <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;
}
posted on 2006-05-23 13:20  仰天一笑  阅读(702)  评论(2编辑  收藏  举报