C#编写asp+浅谈

开发 后端
这里介绍C#编写asp+,asp+比起asp来进步实在是太大了,前几天我用vc写过这么个组件,但用C#编写asp+浅谈简单方便多了。

C#编写asp+有很多可学的东西,这里主要介绍域名查询的页面,用C#编写asp+浅谈组件也能实现域名查询的功能。

终于有时间可以学点新东西了,今天大略看了一下有关C#编写asp+的资料,并且写了个域名查询的页面,感觉很不错,asp+比起asp来进步实在是太大了,尽管用C#编写asp+浅谈组件也能实现域名查询的功能,并且前几天我用vc写过这么个组件,但用C#编写asp+浅谈简单方便多了。好了,废话少提,看源码吧。

  1. <% @Page Language="C#" %> 
  2. <% @Assembly Name="System.Net" %> 
  3. <% @Import Namespace="System.Net.Sockets" %> 
  4. <% @Import Namespace="System.Text" %> 
  5. <% @Import Namespace="System.IO" %> 
  6. <% @Import Namespace="System.Collections" %> 
  7. <script language="C#" runat="server"> 
  8. void doQuery(Object sender, EventArgs e)  
  9. {  
  10. String strDomain = txtDomain.Text;  
  11. char[] chSplit = {'.'};  
  12. string[] arrDomain = strDomain.Split(chSplit);  
  13.  
  14. int nLength = arrDomain[1].Length ;  
  15. Hashtable table = new Hashtable();  
  16. table.Add("de", "whois.denic.de");  
  17. table.Add("be", "whois.dns.be");  
  18. table.Add("gov", "whois.nic.gov");  
  19. table.Add("mil", "whois.nic.mil");  
  20.  
  21. String strServer ; //define whois server  
  22. //if the domainname's end is cn then the server is cnnic ,
    otherwise is networksolutions  
  23. if (arrDomain[arrDomain.Length - 1] == "cn")  
  24. {  
  25. strServer = "159.226.6.139" ;  
  26. }  
  27. else  
  28. {  
  29. strServer = "whois.networksolutions.com";  
  30. }  
  31.  
  32. if (table.ContainsKey(arrDomain[1]))  
  33. {  
  34. strServer = table[arrDomain][1]].ToString();  
  35. }  
  36. else if (nLength == 2)  
  37. {  
  38. // 2-letter TLD's always default to RIPE in Europe  
  39. strServer = "whois.ripe.net";  
  40. }  
  41.  
  42. String strResponse;  
  43. bool bSuccess = DoWhoisLookup(strDomain, strServer, out strResponse);  
  44. if (bSuccess)  
  45. {  
  46. txtResult.Text = strResponse;  
  47. }  
  48. else  
  49. {  
  50. txtResult.Text = "Lookup failed";  
  51. }  
  52. }  
  53.  
  54. bool DoWhoisLookup(String strDomain, String strServer, out String strResponse)  
  55. {  
  56. strResponse = "none";  
  57. bool bSuccess = false;  
  58.  
  59. TCPClient tcpc = new TCPClient();  
  60. if (0 == tcpc.Connect(strServer, 43))  
  61. {  
  62. strDomain += "\r\n";  
  63. Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());  
  64. try  
  65. {  
  66. Stream s = tcpc.GetStream();  
  67. s.Write(arrDomain, 0, strDomain.Length);  
  68.  
  69. StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.ASCII);  
  70. StringBuilder strBuilder = new StringBuilder();  
  71. while (-1 != sr.Peek())  
  72. {  
  73. strBuilder.Append(sr.ReadLine()+"<br>");  
  74. }  
  75. tcpc.Close();  
  76.  
  77. bSuccess = true;  
  78. strResponse = strBuilder.ToString();  
  79. }  
  80. catch(Exception e)  
  81. {  
  82. strResponse = e.ToString();  
  83. }  
  84.  
  85. return bSuccess;  
  86. }  
  87. else  
  88. {  
  89. strResponse = "Could not connect to Whois server";  
  90. return false;  
  91. }  
  92.  
  93. return false;  
  94. }  
  95. </script> 
  96. <html> 
  97. <head> 
  98. <title></title> 
  99. </head> 
  100. <body> 
  101.  
  102. <form runat="server"> 
  103. Domain name: WWW . <asp:TextBox id="txtDomain" value="" runat="server" /> 
  104. <asp:Button id="btnQuery" OnClick="doQuery" text="Query!" runat="server" /> 
  105. <BR><HR width="100%"><BR> 
  106. <asp:label id="txtResult" runat="server" /> 
  107. </form> 
  108.  
  109. </body> 
  110. </html>  

【编辑推荐】

  1. C#编程实现显示XML文件
  2. C#语言获取要显示页面
  3. 创建C# Windows窗体应用程序浅析
  4. C#实现窗体显示背景知识
  5. C# Lazy-Allocate设计概念
责任编辑:佚名 来源: IT168
相关推荐

2009-08-18 17:08:50

C#编写XML文档

2009-08-20 18:30:33

C# ReaderWr

2011-09-21 10:56:31

C#结构

2009-08-19 17:12:18

C# Connecti

2009-08-12 11:24:25

C# String对象

2009-08-07 11:26:53

C#数组结构

2009-08-31 09:37:09

C# Employee

2009-08-25 16:16:43

C# oledbcon

2009-08-26 15:46:01

C#匿名类型

2009-08-20 10:24:52

C#开发WinForm

2009-08-06 15:30:23

C#类型系统

2009-08-26 13:15:38

C#选择控制

2009-09-02 15:41:21

C# HTTPWebR

2009-08-14 17:58:05

C#接口方法

2009-08-10 10:04:25

C#抽象类C#接口

2009-08-11 13:13:09

C#和Java比较

2009-09-02 16:23:27

C# Singleto

2009-08-19 17:45:26

C#使用GDI+

2009-08-10 14:55:04

C#定义Nullabl

2009-09-04 11:00:13

通过C#引用传递
点赞
收藏

51CTO技术栈公众号