<a href='http://www.biancheng88.cn/html/2008-11/asp-27054679.html'>asp+初体验---用c#写的asp+域名查询程序</a><br><br>
终于有时间可以学点新东西了,今天大略看了一下有关<a href="http://www.biancheng88.cn/html/special/2008-11/ASP/" title="asp" target=_blank><B>asp</B></a>+的资料,并且写了个域名查询的页面,感觉很不错,asp+比<br>
起asp来进步实在是太大了,尽管用asp+组件也能实现域名查询的功能,并且前几天我用vc写过这么个组件,但用<a href="http://www.biancheng88.cn/html/special/2008-11/ASP/" title="asp" target=_blank><B>asp</B></a>+简单<br>
方便多了。好了,废话少提,看源码吧。<br>
<br>
<% @Page Language="C#" %><br>
<% @Assembly Name="System.Net" %><br>
<% @Import Namespace="System.Net.Sockets" %><br>
<% @Import Namespace="System.Text" %><br>
<% @Import Namespace="System.IO" %><br>
<% @Import Namespace="System.Collections" %><br>
<script language="C#" runat="server"><br>
void doQuery(Object sender, EventArgs e)<br>
{<br>
String strDomain = txtDomain.Text;<br>
char[] chSplit = {'.'};<br>
string[] arrDomain = strDomain.Split(chSplit);<br>
<br>
int nLength = arrDomain[1].Length ;<br>
Hashtable table = new Hashtable();<br>
table.Add("de", "whois.denic.de");<br>
table.Add("be", "whois.dns.be");<br>
table.Add("gov", "whois.nic.gov");<br>
table.Add("mil", "whois.nic.mil");<br>
<br>
String strServer ; //define whois server<br>
//if the domainname's end is cn then the server is cnnic ,otherwise is networksolutions <br>
if (arrDomain[arrDomain.Length - 1] == "cn")<br>
{<br>
strServer = "159.226.6.139" ;<br>
} <br>
else<br>
{<br>
strServer = "whois.networksolutions.com";<br>
} <br>
<br>
if (table.ContainsKey(arrDomain[1]))<br>
{<br>
strServer = table[arrDomain][1]].ToString();<br>
}<br>
else if (nLength == 2)<br>
{<br>
// 2-letter TLD's always default to RIPE in Europe<br>
strServer = "whois.ripe.net";<br>
}<br>
<br>
String strResponse;<br>
bool bSuccess = DoWhoisLookup(strDomain, strServer, out strResponse);<br>
if (bSuccess)<br>
{<br>
txtResult.Text = strResponse;<br>
}<br>
else<br>
{<br>
txtResult.Text = "Lookup failed";<br>
}<br>
}<br>
<br>
bool DoWhoisLookup(String strDomain, String strServer, out String strResponse)<br>
{<br>
strResponse = "none";<br>
bool bSuccess = false;<br>
<br>
TCPClient tcpc = new TCPClient();<br>
if (0 == tcpc.Connect(strServer, 43))<br>
{ <br>
strDomain += "/r/n";<br>
Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());<br>
try<br>
{<br>
Stream s = tcpc.GetStream();<br>
s.Write(arrDomain, 0, strDomain.Length);<br>
<br>
StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.ASCII);<br>
StringBuilder strBuilder = new StringBuilder();<br>
while (-1 != sr.Peek())<br>
{<br>
strBuilder.Append(sr.ReadLine()+"<br>");<br>
}<br>
tcpc.Close();<br>
<br>
bSuccess = true;<br>
strResponse = strBuilder.ToString();<br>
}<br>
catch(Exception e)<br>
{<br>
strResponse = e.ToString();<br>
}<br>
<br>
return bSuccess;<br>
}<br>
else<br>
{<br>
strResponse = "Could not connect to Whois server";<br>
return false;<br>
}<br>
<br>
return false;<br>
}<br>
</script><br>
<html><br>
<head><br>
<title></title><br>
</head><br>
<body><br>
<br>
<form runat="server"><br>
Domain name: WWW . <br>
<br>
<BR><HR width="100%"><BR><br>
<br>
</form><br>
<br>
</body><br>
</html> <br>