2009-11-04 68 views
1

當我搜索域名檢查的開放源代碼時,我得到了這個參考http://www.codeproject.com/KB/aspnet/DataScraping.aspx 其實它是在vb.net我轉換成C#代碼並粘貼代碼在我的網頁我發送總源和代碼獲取域名的詳細信息域名

源代碼

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body MS_POSITIONING="GridLayout"> 
     <form id="Form1" method="post" runat="server"> 
     <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="358" border="0"> 
      <TR> 
      <TD> 
       <asp:Label id="Label2" Runat="server">www.</asp:Label> 
       <asp:TextBox id="txtDomain" Runat="server"> 
       Check Domain</asp:TextBox></TD> 
      <TD> 
       <asp:Button id="btnQuery" Text="Check Domain" Runat="server" OnClick="btnQuery_Click1"> 
       </asp:Button></TD> 
     </TR> 
     <TR> 
      <TD> 
       <asp:Label id="txtResult" Runat="server"></asp:Label></TD> 
      <TD></TD> 
     </TR> 
     </TABLE> 
     </form> 
    </body> 

</html> 

C#代碼

//code 


using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Net.Sockets; 
using System.Text; 
using System.IO; 

using System.Net; 
using System.Text.RegularExpressions; 

public partial class _Default : System.Web.UI.Page 
{ 
    //protected System.Web.UI.WebControls.Label Label1; 
    //protected System.Web.UI.WebControls.Button btnQuery; 
    //protected System.Web.UI.WebControls.Label txtResult; 
    //protected System.Web.UI.WebControls.Label Label2; 
    //protected System.Web.UI.WebControls.TextBox txtDomain; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     txtDomain.Attributes.Add("onclick", "this.value='';"); 
    } 

    private void btnQuery_Click(System.Object sender, System.EventArgs e) 
    { 
     // Stores the bufData extracted from the webclient 

     string firstLevelbufData = null; 
     try 
     { 
      // similarly we can select any server address for bufData mining 

      string strURL = "http://www.directnic.com/whois/index.php?query=" + txtDomain.Text; 
      WebClient web = new WebClient(); 
      // byte array to store the extracted bufData by webclient 

      byte[] bufData = null; 
      bufData = web.DownloadData(strURL); 
      // got the bufData now convert it into string form 

      firstLevelbufData = Encoding.Default.GetString(bufData); 
     } 
     catch (System.Net.WebException ex) 
     { 
      // this exception will be fired when the host name 

      // is not resolved or any other connection problem 

      txtResult.Text = ex.Message; 
      return; 
     } 
     try 
     { 
      // first and last are the regular expression string 

      // for extraction bufData witnin two tags 

      // you can change according to your requirement 

      string first = null; 
      string last = null; 

      first = "<p class= " + Strings.Chr(34) + "text12" + Strings.Chr(34) + ">"; 
      last = "</p>"; 
      Regex RE = new Regex(first + "(?<MYDATA>.*?(?=" + last + "))", RegexOptions.IgnoreCase | RegexOptions.Singleline); 
      // try to extract the bufData within the first and last tag 

      Match m = RE.Match(firstLevelbufData); 
      // got the result 

      txtResult.Text = m.Groups("MYDATA").Value + ""; 
      // check if no information abour that domain is available 

      if (txtResult.Text.Length < 10) txtResult.Text = "Information about this domain is not available !!"; 
     } 
      catch (Exception e3) 
      { 
      txtResult.Text = "Sorry the whois information" + " is currently not available !!"; 
      } 
    } 

} 

b UT我在管線70得到錯誤「(第一=‘’;)」 ,並在第78頁 幫助,如果你想在原來的VB代碼,這是參考退房

http://www.codeproject.com/KB/aspnet/DataScraping.aspx

+0

試試看。 VB到C#轉換器 - http://www.developerfusion.com/tools/convert/vb-to-csharp/ – 2009-11-04 06:32:44

回答

2
using System.Net.Sockets; 
using System.Text; 
using System.IO; 
using System.Collections; 
using System.Net; 
using System.Text.RegularExpressions; 


public partial class WhoIsC : System.Web.UI.Page 
{ 

    #region " Web Form Designer Generated Code " 

    //This call is required by the Web Form Designer. 
    [System.Diagnostics.DebuggerStepThrough()] 
    private void InitializeComponent() 
    { 

    } 

    protected void // ERROR: Handles clauses are not supported in C# 
Page_Init(System.Object sender, System.EventArgs e) 
    { 
     //CODEGEN: This method call is required by the Web Form Designer 
     //Do not modify it using the code editor. 
     InitializeComponent(); 
    } 

    #endregion 

    private void // ERROR: Handles clauses are not supported in C# 
Page_Load(System.Object sender, System.EventArgs e) 
    { 
     // Adds the java script code for clearing the existing text from the text box when user wants to 
     // enter a new domain name 
     txtDomain.Attributes.Add("onclick", "this.value='';"); 
    } 

    public void // ERROR: Handles clauses are not supported in C# 
btnQuery_Click(System.Object sender, System.EventArgs e) 
    { 
     string firstLevelbufData = null; 
     // Stores the bufData extracted from the webclient 
     try 
     { 
      // similarly we can select any server address for bufData mining 
      string strURL = "http://www.directnic.com/whois/index.php?query=" + txtDomain.Text; 
      WebClient web = new WebClient(); 
      // byte array to store the extracted bufData by webclient 
      byte[] bufData = null; 
      bufData = web.DownloadData(strURL); 
      // got the bufData now convert it into string form 
      firstLevelbufData = Encoding.Default.GetString(bufData); 
     } 
     catch (System.Net.WebException ex) 
     { 
      // this exception will be fired when the host name is not resolved or any other connection problem 
      txtResult.Text = ex.Message.ToString(); 
      return; 
     } 
     try 
     { 
      // first and last are the regular expression string for extraction bufData witnin two tags 
      // you can change according to your requirement 
      string first = null; 
      string last = null; 
      // chr(34) is used for (") symbol 
      first = "<p class=\"text12\">"; 
      last = "</p>"; 

      Regex RE = new Regex(first + "(?<MYDATA>.*?(?=" + last + "))", RegexOptions.IgnoreCase | RegexOptions.Singleline); 
      // try to extract the bufData within the first and last tag 
      Match m = RE.Match(firstLevelbufData); 
      // got the result 
      txtResult.Text = m.Groups["MYDATA"].Value + "<br>"; 
      // check if no information abour that domain is available 
      if (txtResult.Text.Length < 10) txtResult.Text = "Information about this domain is not available !!"; 
     } 
     catch (System.Net.WebException ex) 
     { 
      txtResult.Text = "Sorry the whois information is currently not available !!"; 
     } 
    } 

} 
+0

雅是工作很好謝謝你非常Mr.Surajitkhamrai – 2009-11-04 08:28:35

+0

嗨Mr.surjitkhamrai你r代碼工作正常,但它沒有得到域名的詳細信息,例如'.co','。in'域名是 「對不起,這些信息目前不可用!!」。 我需要域名信息,這是在.co,.in域名 像'axisbank.co.in'它沒有提供的信息,請幫助我 – 2009-11-18 12:22:39