下面是源程序。
1 @ Page Language="C#"
1 @ Assembly Name="System.Net"
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
8int nLength = arrDomain[1].Length ;
9Hashtable table = new Hashtable();
10table.Add("de", "whois.denic.de");
11table.Add("be", "whois.dns.be");
12table.Add("gov", "whois.nic.gov");
13table.Add("mil", "whois.nic.mil");
14
15String strServer ; //define whois server
16//if the domainname's end is cn then the server is cnnic ,otherwise is networksolutions
17if (arrDomain[arrDomain.Length - 1] == "cn")
18{
19strServer = "159.226.6.139" ;
20}
21else
22{
23strServer = "whois.networksolutions.com";
24}
25
26if (table.ContainsKey(arrDomain[1]))
27{
28strServer = table[arrDomain[1]].ToString();
29}
30else if (nLength == 2)
31{
32// 2-letter TLD's always default to RIPE in Europe
33strServer = "whois.ripe.net";
34}
35
36String strResponse;
37bool bSuccess = DoWhoisLookup(strDomain, strServer, out strResponse);
38if (bSuccess)
39{
40txtResult.Text = strResponse;
41}
42else
43{
44txtResult.Text = "Lookup failed";
45}
46}
47
48bool DoWhoisLookup(String strDomain, String strServer, out String strResponse)
49{
50strResponse = "none";
51bool bSuccess = false;
52
53TCPClient tcpc = new TCPClient();
54if (0 == tcpc.Connect(strServer, 43))
55{
56strDomain += "\r\n";
57Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());
58try
59{
60String str;
61Stream s = tcpc.GetStream();
62s.Write(arrDomain, 0, strDomain.Length);
63
64StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
65StringBuilder strBuilder = new StringBuilder();
66while (-1 != sr.Peek())
67{
68strBuilder.Append(sr.ReadLine()+"<br>");
69
70}
71tcpc.Close();
72
73bSuccess = true;
74strResponse = strBuilder.ToString();
75}
76catch(Exception e)
77{
78strResponse = e.ToString();
79}
80
81return bSuccess;
82}
83else
84{
85strResponse = "Could not connect to Whois server";
86return false;
87}
88
89return false;
90}
91</script>
1<html>
2<head>
3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
4<title></title>
5</head>
6<body>
7<form runat="server">
8Domain name: WWW . <asp:textbox id="txtDomain" runat="server" value=""></asp:textbox>
9 <asp:button id="btnQuery" onclick="doQuery" runat="server" text="Query!"></asp:button>
10<br/><hr width="100%"/><br/>
11<asp:label id="txtResult" runat="server"></asp:label>
12</form>
13</body>
14</html>