个人收藏.出自国外高手
whois.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.OnlineNIC.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">
7域名whois查询(.NET版): <asp:textbox id="txtDomain" runat="server" value="3cts.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>