当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP.Net编写的查询域名的程序

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

用ASP.Net编写的查询域名的程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 165 ::
收藏到网摘: n/a

       这段程序最早是bigengle兄弟贴在chinaasp上的,是个很不错的程序来讲解ASP.Net的高级应用。不过最大的缺点就是查询中国域名时不支持中文,所出来的信息中文不能显示,小弟我稍微改了一下,这个已经能够支持中文了。呵呵,关于这个例子,我在国外的站点上放了了一个大家可以看
  
  http://aspx1.brinkster.com/feidao/named.aspx
  
  这个主机是国外的,所以对中文支持不太好(原因我在《亲密接触ASP.net》中说得很清楚),大家如果看不到中文,请用选择IE中的"编码"---"简体中文".
  
  下面是源程序。
  
  <% @ Page Language="C#" %>
  <% @ Assembly Name="System.Net" %>
  <% @ Import Namespace="System.Net.Sockets" %>
  <% @ Import Namespace="System.Text" %>
  <% @ Import Namespace="System.IO" %>
  <% @ Import Namespace="System.Collections" %>
  <script language="C#" runat="server">
  void doQuery(Object sender, EventArgs e)
  {
   String strDomain = txtDomain.Text;
   char[] chSplit = {'.'};
   string[] arrDomain = strDomain.Split(chSplit);
  
   int nLength = arrDomain[1].Length ;
   Hashtable table = new Hashtable();
   table.Add("de", "whois.denic.de");
   table.Add("be", "whois.dns.be");
   table.Add("gov", "whois.nic.gov");
   table.Add("mil", "whois.nic.mil");
  
   String strServer ; //define whois server
   //if the domainname's end is cn then the server is cnnic ,otherwise is networksolutions
   if (arrDomain[arrDomain.Length - 1] == "cn")
   {
   strServer = "159.226.6.139" ;
   }
   else
   {
   strServer = "whois.networksolutions.com";
   }
  
   if (table.ContainsKey(arrDomain[1]))
   {
   strServer = table[arrDomain[1]].ToString();
   }
   else if (nLength == 2)
   {
   // 2-letter TLD's always default to RIPE in Europe
   strServer = "whois.ripe.net";
   }
  
   String strResponse;
   bool bSuccess = DoWhoisLookup(strDomain, strServer, out strResponse);
   if (bSuccess)
   {
   txtResult.Text = strResponse;
   }
   else
   {
   txtResult.Text = "Lookup failed";
   }
  }
  
  bool DoWhoisLookup(String strDomain, String strServer, out String strResponse)
  {
   strResponse = "none";
   bool bSuccess = false;
  
   TCPClient tcpc = new TCPClient();
   if (0 == tcpc.Connect(strServer, 43))
   {
   strDomain += "\r\n";
   Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());
   try
   {
   String str;
  Stream s = tcpc.GetStream();
   s.Write(arrDomain, 0, strDomain.Length);
  
   StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
   StringBuilder strBuilder = new StringBuilder();
   while (-1 != sr.Peek())
   {
   strBuilder.Append(sr.ReadLine()+"<br>");
  
   }
   tcpc.Close();
  
   bSuccess = true;
   strResponse = strBuilder.ToString();
   }
   catch(Exception e)
   {