职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1241|回复: 0

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

[复制链接]
joe 发表于 2006-12-18 22:30 | 显示全部楼层 |阅读模式
下面是源程序。

   
  <% @ 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)
   {
   strResponse = e.ToString();
   }
   
   return bSuccess;
   }
   else
   {
   strResponse = \\\"Could not connect to Whois server\\\";
   return false;
   }
   
   return false;
  }
  </script>
  <html>
  <head>
  <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=gb2312\\\">
  <title></title>
  </head>
  <body>
   
  <form runat=\\\"server\\\">
  Domain name: WWW . <asp:TextBox id=\\\"txtDomain\\\" value=\\\"\\\" runat=\\\"server\\\" />
   <asp:Button id=\\\"btnQuery\\\" OnClick=\\\"doQuery\\\" text=\\\"Query!\\\" runat=\\\"server\\\" />
  <BR><HR width=\\\"100%\\\"><BR>
  <asp:label id=\\\"txtResult\\\" runat=\\\"server\\\" />
  </form>
   
  </body>
  </html>
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-11 22:21 , Processed in 0.110015 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表