Finalmente, tengo tiempo para aprender algo nuevo.
La mejora de ASP es demasiado grande.
Hay más. Bueno, hablemos menos sin sentido, mire el código fuente.
< % @Page Language = "C#" %>
< % @Assembly name = "System.net" %>
< % @import namespace = "system.net.sockets" %>
< % @import namespace = "System.Text" %>
< % @import namespace = "System.io" %>
< % @import namespace = "System.Collections" %>
<script lenguaje = "c#" runat = "servidor">
Void DoQuery (remitente de objeto, EventArgs e)
{{
String Strongomain = txtdomain.Text;
char [] chsplit = {'.'};
cadena [] arrduin = strdomain.split (chsplit);
int nlenth = arrdomain [1] .length;
Tabla hashtable = nueva hashtable ();
table.add ("de", "whois.denic.de");
table.add ("be", "whois.dns.be");
table.add ("gov", "whois.nic.gov");
table.add ("mil", "whois.nic.mil");
String StrServer;
// Si el final del nombre de dominio es CN, el servidor es CNNIC, de lo contrario, es NetworkSolutions
if (arrdomain [arromain.length -1] == "cn")
{{
strserver = "159.226.6.139";
}
demás
{{
strserver = "whois.networksolutions.com";
}
if (table.containskey (arrdomain [1]))
{{
strserver = tabla [arromain] [1]].
}
más si (nlength == 2)
{{
// LTTER TLD's siempre está predeterminado en Europa
strserver = "whois.ripe.net";
}
cadena strresponse;
Bool bsuccess = dowhoislookup (strdomain, strserver, out strresponse);
if (bsuccess)
{{
txtresult.text = strResponse;
}
demás
{{
txtresult.Text = "Falló en la búsqueda";
}
}
Bool dowhoislokup (strdomain de cadena, string strserver, out string strresponse)
{{
strResponse = "Ninguno";
Bool bsuccess = false;
tcpClient tcpc = new tcpClient ();
if (0 == tcpc.connect (strserver, 43))
{{
strdomain += "/r/n";
byte [] arrdomain = encoding.ascii.getbytes (strdomain.tocharray ());
intentar
{{
stream s = tcpc.getstream ();
s.write (arrdomain, 0, strdomain.length);
StreamReader Sr = new StreamReader (tcpc.getStream (), coding.ascii);
StringBuilder strBuilder = new StringBuilder ();
While (-1! = Sr.peek ())
{{
StrBuilder.append (Sr.Readline ()+"<br>");
}
tcpc.close ();
bsuccess = verdadero;
strResponse = strBuilder.ToString ();
}
captura (excepción e)
{{
strResponse = e.ToString ();
}
Return bsuccess;
}
demás
{{
StrResponse = "No se pudo conectar al servidor Whois";
Devolver falso;
}
Devolver falso;
}
</script>
<html>
<Evista>
<title> </title>
</ablo>
<Body>
<Form de runat = "servidor">
Nombre de dominio: www.
<ASP: Button ID = "BTNQuery" onClick = "doquery" text = "consulta!"
<br> <hr> <br>
<ASP: etiqueta id = "txtresult" runat = "servidor" />
</form>
</body>
</html>