C#域名查询

queryinternic.aspx

1 @Page Language="C#" 
1 @Import Namespace="System.Net.Sockets" 
1 @Import Namespace="System.Text" 
1 @Import Namespace="System.IO" 
 1   
 2TcpClient tcpc = new TcpClient();   
 3try   
 4{   
 5tcpc.Connect("whois.networksolutions.com", 43);   
 6}   
 7catch(SocketException ex)   
 8{   
 9Response.Write(ex.ToString());   
10Response.End();   
11} 
12
13String strDomain = "gotdotnet.com\r\n";   
14Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());   
15  
16Stream s = tcpc.GetStream();   
17s.Write(arrDomain, 0, strDomain.Length); 
18
19StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.ASCII);   
20string strLine = null; 
21
22while (null != (strLine = sr.ReadLine()))   
23{   
24Response.Write(strLine + "

<br/>

1");   
2} 
3
4tcpc.Close();   

queryregistries.aspx

1 @Page Language="C#" 
1 @Import Namespace="System.Net.Sockets" 
1 @Import Namespace="System.Text" 
1 @Import Namespace="System.IO" 
1 @Import Namespace="System.Collections" 
 1<script language="C#" runat="server">   
 2void doQuery(Object sender, EventArgs e)   
 3{   
 4String strDomain = txtDomain.Text;   
 5char[] chSplit = {'.'};   
 6string[] arrDomain = strDomain.Split(chSplit);   
 7// es darf genau ein domain name + ein suffix sein   
 8if (arrDomain.Length != 2)   
 9{   
10return;   
11} 
12
13// das suffic darf nur 2 oder 3 zeichen lang sein   
14int nLength = arrDomain[1].Length;   
15if (nLength != 2 && nLength != 3)   
16{   
17return;   
18} 
19
20Hashtable table = new Hashtable();   
21table.Add("at", "whois.nic.at");   
22table.Add("de", "whois.denic.de");   
23table.Add("be", "whois.dns.be");   
24table.Add("gov", "whois.nic.gov");   
25table.Add("mil", "whois.nic.mil"); 
26
27String strServer = "whois.networksolutions.com";   
28if (table.ContainsKey(arrDomain[1]))   
29{   
30strServer = table[arrDomain[1]].ToString();   
31}   
32else if (nLength == 2)   
33{   
34// 2-letter TLD's always default to RIPE in Europe   
35strServer = "whois.ripe.net";   
36}   
37  
38String strResponse;   
39bool bSuccess = DoWhoisLookup(strDomain, strServer, out strResponse);   
40if (bSuccess)   
41{   
42txtResult.Text = strResponse;   
43}   
44else   
45{   
46txtResult.Text = "Lookup failed";   
47}   
48} 
49
50bool DoWhoisLookup(String strDomain, String strServer, out String strResponse)   
51{   
52strResponse = "none";   
53bool bSuccess = false; 
54
55TcpClient tcpc = new TcpClient();   
56try   
57{   
58tcpc.Connect(strServer, 43);   
59}   
60catch(SocketException ex)   
61{   
62strResponse = "Could not connect to Whois server";   
63return false;   
64} 
65
66strDomain += "\r\n";   
67Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());   
68try   
69{   
70Stream s = tcpc.GetStream();   
71s.Write(arrDomain, 0, strDomain.Length);   
72  
73StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.ASCII);   
74StringBuilder strBuilder = new StringBuilder();   
75string strLine = null; 
76
77while (null != (strLine = sr.ReadLine()))   
78{   
79strBuilder.Append(strLine+"<br>");   
80}   
81tcpc.Close();   
82  
83bSuccess = true;   
84strResponse = strBuilder.ToString();   
85}   
86catch(Exception e)   
87{   
88strResponse = e.ToString();   
89}   
90  
91return bSuccess;   
92}   
93</script>
 1<html>
 2<head>
 3<title></title>
 4</head>
 5<body>
 6<form runat="server">   
 7Domain name: <asp:textbox id="txtDomain" runat="server" value="aspheute.com"></asp:textbox>   
 8 <asp:button id="btnQuery" onclick="doQuery" runat="server" text="Query!"></asp:button>
 9<br/><hr width="100%"/><br/>
10<asp:label id="txtResult" runat="server"></asp:label>
11</form>
12</body>
13</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus