ASP教程 PHP教程 JSP教程 CGI教程 XML教程
  • ASP.NET教程
  • JAVA教程
    当前位置:教程 > 程序设计 > ASP.NET教程 > 正文

    C#独立域名查询

    编辑:教程网 来源:网络 时间:2011年10月23日 20:47
    个人收藏.出自国外高手

    whois.ASPx



    <% @Page Language="C#" %>
    <% @Import Namespace="System.Net.Sockets" %>
    <% @Import Namespace="System.Text" %>
    <% @Import Namespace="System.IO" %>
    <% @Import Namespace="System.Collections" %>
    <script language="C#" runat="server">
    void doQuery(Object sender, EventArgs e)
    {
    String strDomain = txtDomain.Text;
    char[] chSplit = {'.'};
    string[] arrDomain = strDomain.Split(chSplit);
    // es darf genau ein domain name + ein suffix sein
    if (arrDomain.Length != 2)
    {
    return;
    }

    // das suffic darf nur 2 oder 3 zeichen lang sein
    int nLength = arrDomain[1].Length;
    if (nLength != 2 && nLength != 3)
    {
    return;
    }

    Hashtable table = new Hashtable();
    table.Add("at", "whois.nic.at");
    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 = "whois.OnlineNIC.com";
    if (table.ContainsKey(arrDomain[1]))
    {
    strServer = table[arrDomain[1]].ToString();
    }
    else if (nLength == 2)
    {
    // 2-letter TLD's always default to RIPE in Europe
    strServer = "whois.ripe.net";
    }

    String strResponse;
    bool bSuccess = DoWhoisLookup(strDomain, strServer, out strResponse);
    if (bSuccess)
    {
    txtResult.Text = strResponse;
    }
    else
    {
    txtResult.Text = "Lookup failed";
    }
    }

    bool DoWhoisLookup(String strDomain, String strServer, out String strResponse)
    {
    strResponse = "none";
    bool bSuccess = false;

    TcpClient tcpc = new TcpClient();
    try
    {
    tcpc.Connect(strServer, 43);
    }
    catch(SocketException ex)
    {
    strResponse = "Could not connect to Whois server";
    return false;
    }

    strDomain += "\r\n";
    Byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain.ToCharArray());
    try
    {
    Stream s = tcpc.GetStream();
    s.Write(arrDomain, 0, strDomain.Length);

    StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.ASCII);
    StringBuilder strBuilder = new StringBuilder();
    string strLine = null;

    while (null != (strLine = sr.ReadLine()))
    {
    strBuilder.Append(strLine+"<br>");
    }
    tcpc.Close();

    bSuccess = true;
    strResponse = strBuilder.ToString();
    }
    catch(Exception e)
    {
    strResponse = e.ToString();
    }

    return bSuccess;
    }
    </script>
    <HTML>
    <head>
    <title></title>
    </head>
    <body>

    <form runat="server">
    域名whois查询(.NET版): <asp:TextBox id="txtDomain" value="3cts.com" runat="server" />
  • 原文来自 教程网 转载请注明:http://www.websmill.com/chengxu/aspnet/29330.html

  • 上一篇:C#+ASP.NET 2.0 定制复合组件之高级篇4
  • 下一篇:远瞻新知,触控未来-记WinHEC2008