• c#换ip代理源码


      1 很多朋友都想如何提高自己的网站流量,可是都没有什么好的办法
      2 经过很长时间的研究,在C#中实现了,当然了,这部分代码其中一部分是网上的,不是原创。
      3 
      4 using System;
      5 using System.Drawing;
      6 using System.Collections;
      7 using System.ComponentModel;
      8 using System.Windows.Forms;
      9 using System.Data;
     10 using System.Runtime.InteropServices;
     11 using System.Diagnostics;
     12 using System.IO;
     13 using System.Text.RegularExpressions;
     14 using System.Text;
     15 using System.Net;
     16 namespace WebSock
     17 {
     18  /// <summary>
     19  /// Form1 的摘要说明。
     20  /// </summary>
     21  public class Form1 : System.Windows.Forms.Form
     22  {
     23   private System.Windows.Forms.GroupBox groupBox1;
     24   private AxSHDocVw.AxWebBrowser axWebBrowser1;
     25   private System.Windows.Forms.Button button1;
     26   private System.Windows.Forms.Button button2;
     27   private System.Windows.Forms.OpenFileDialog openFileDialog1;
     28   private System.Windows.Forms.Timer timer1;
     29   private System.ComponentModel.IContainer components;
     30   private System.Windows.Forms.StatusBar statusBar1;
     31   private System.Windows.Forms.StatusBarPanel statusBarPanel1;
     32   private System.Windows.Forms.GroupBox groupBox2;
     33   private System.Windows.Forms.GroupBox groupBox3;
     34   private System.Windows.Forms.GroupBox groupBox4;
     35   private System.Windows.Forms.Button button3;
     36   ArrayList arrText = new ArrayList();
     37   int Total = 0;
     38   int i,k=0;
     39   private System.Windows.Forms.GroupBox groupBox5;
     40   private System.Windows.Forms.Label label1;
     41   private System.Windows.Forms.TextBox txtWebUrl;
     42   private const string TitleInfo = "程序制作红色银狐";
     43   private System.Windows.Forms.ListBox listBox1;
     44   private string strUrl = "";
     45   public Form1()
     46   {
     47    //
     48    // Windows 窗体设计器支持所必需的
     49    //
     50    InitializeComponent();
     51    //
     52    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
     53    //
     54   }
     55 
     56   /// <summary>
     57   /// 清理所有正在使用的资源。
     58   /// </summary>
     59   protected override void Dispose( bool disposing )
     60   {
     61    if( disposing )
     62    {
     63     if (components != null) 
     64     {
     65      components.Dispose();
     66     }
     67    }
     68    base.Dispose( disposing );
     69   }
     70 
     71   #region Windows 窗体设计器生成的代码
     72   /// <summary>
     73   /// 设计器支持所需的方法 - 不要使用代码编辑器修改
     74   /// 此方法的内容。
     75   /// </summary>
     76   private void InitializeComponent()
     77   {
     78    this.components = new System.ComponentModel.Container();
     79    System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
     80    this.groupBox1 = new System.Windows.Forms.GroupBox();
     81    this.groupBox3 = new System.Windows.Forms.GroupBox();
     82    this.axWebBrowser1 = new AxSHDocVw.AxWebBrowser();
     83    this.groupBox2 = new System.Windows.Forms.GroupBox();
     84    this.listBox1 = new System.Windows.Forms.ListBox();
     85    this.button1 = new System.Windows.Forms.Button();
     86    this.button2 = new System.Windows.Forms.Button();
     87    this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
     88    this.timer1 = new System.Windows.Forms.Timer(this.components);
     89    this.statusBar1 = new System.Windows.Forms.StatusBar();
     90    this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
     91    this.groupBox4 = new System.Windows.Forms.GroupBox();
     92    this.button3 = new System.Windows.Forms.Button();
     93    this.groupBox5 = new System.Windows.Forms.GroupBox();
     94    this.label1 = new System.Windows.Forms.Label();
     95    this.txtWebUrl = new System.Windows.Forms.TextBox();
     96    this.groupBox1.SuspendLayout();
     97    this.groupBox3.SuspendLayout();
     98    ((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).BeginInit();
     99    this.groupBox2.SuspendLayout();
    100    ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
    101    this.groupBox4.SuspendLayout();
    102    this.groupBox5.SuspendLayout();
    103    this.SuspendLayout();
    104    // 
    105    // groupBox1
    106    // 
    107    this.groupBox1.Controls.Add(this.groupBox3);
    108    this.groupBox1.Controls.Add(this.groupBox2);
    109    this.groupBox1.Location = new System.Drawing.Point(0, 0);
    110    this.groupBox1.Name = "groupBox1";
    111    this.groupBox1.Size = new System.Drawing.Size(810, 440);
    112    this.groupBox1.TabIndex = 0;
    113    this.groupBox1.TabStop = false;
    114    // 
    115    // groupBox3
    116    // 
    117    this.groupBox3.Controls.Add(this.axWebBrowser1);
    118    this.groupBox3.Location = new System.Drawing.Point(312, 8);
    119    this.groupBox3.Name = "groupBox3";
    120    this.groupBox3.Size = new System.Drawing.Size(490, 424);
    121    this.groupBox3.TabIndex = 2;
    122    this.groupBox3.TabStop = false;
    123    this.groupBox3.Text = "浏览器";
    124    // 
    125    // axWebBrowser1
    126    // 
    127    this.axWebBrowser1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    128     | System.Windows.Forms.AnchorStyles.Left) 
    129     | System.Windows.Forms.AnchorStyles.Right)));
    130    this.axWebBrowser1.ContainingControl = this;
    131    this.axWebBrowser1.Enabled = true;
    132    this.axWebBrowser1.Location = new System.Drawing.Point(8, 16);
    133    this.axWebBrowser1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axWebBrowser1.OcxState")));
    134    this.axWebBrowser1.Size = new System.Drawing.Size(474, 400);
    135    this.axWebBrowser1.TabIndex = 0;
    136    // 
    137    // groupBox2
    138    // 
    139    this.groupBox2.Controls.Add(this.listBox1);
    140    this.groupBox2.Location = new System.Drawing.Point(8, 8);
    141    this.groupBox2.Name = "groupBox2";
    142    this.groupBox2.Size = new System.Drawing.Size(296, 424);
    143    this.groupBox2.TabIndex = 1;
    144    this.groupBox2.TabStop = false;
    145    this.groupBox2.Text = "代理IP地址";
    146    // 
    147    // listBox1
    148    // 
    149    this.listBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    150    this.listBox1.ItemHeight = 12;
    151    this.listBox1.Location = new System.Drawing.Point(8, 16);
    152    this.listBox1.Name = "listBox1";
    153    this.listBox1.Size = new System.Drawing.Size(280, 398);
    154    this.listBox1.TabIndex = 2;
    155    // 
    156    // button1
    157    // 
    158    this.button1.Location = new System.Drawing.Point(310, 16);
    159    this.button1.Name = "button1";
    160    this.button1.Size = new System.Drawing.Size(176, 32);
    161    this.button1.TabIndex = 1;
    162    this.button1.Text = "载入代理IP";
    163    this.button1.Click += new System.EventHandler(this.button1_Click_1);
    164    // 
    165    // button2
    166    // 
    167    this.button2.Location = new System.Drawing.Point(486, 16);
    168    this.button2.Name = "button2";
    169    this.button2.Size = new System.Drawing.Size(176, 32);
    170    this.button2.TabIndex = 2;
    171    this.button2.Text = "开始刷流量";
    172    this.button2.Click += new System.EventHandler(this.button2_Click);
    173    // 
    174    // timer1
    175    // 
    176    this.timer1.Interval = 10000;
    177    this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
    178    // 
    179    // statusBar1
    180    // 
    181    this.statusBar1.Dock = System.Windows.Forms.DockStyle.None;
    182    this.statusBar1.Location = new System.Drawing.Point(0, 552);
    183    this.statusBar1.Name = "statusBar1";
    184    this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
    185                         this.statusBarPanel1});
    186    this.statusBar1.ShowPanels = true;
    187    this.statusBar1.Size = new System.Drawing.Size(810, 24);
    188    this.statusBar1.TabIndex = 3;
    189    // 
    190    // statusBarPanel1
    191    // 
    192    this.statusBarPanel1.Width = 820;
    193    // 
    194    // groupBox4
    195    // 
    196    this.groupBox4.Controls.Add(this.button3);
    197    this.groupBox4.Controls.Add(this.button2);
    198    this.groupBox4.Controls.Add(this.button1);
    199    this.groupBox4.Location = new System.Drawing.Point(0, 496);
    200    this.groupBox4.Name = "groupBox4";
    201    this.groupBox4.Size = new System.Drawing.Size(810, 56);
    202    this.groupBox4.TabIndex = 4;
    203    this.groupBox4.TabStop = false;
    204    this.groupBox4.Text = "操作区";
    205    // 
    206    // button3
    207    // 
    208    this.button3.Location = new System.Drawing.Point(134, 16);
    209    this.button3.Name = "button3";
    210    this.button3.Size = new System.Drawing.Size(176, 32);
    211    this.button3.TabIndex = 3;
    212    this.button3.Text = "从网络获取代理IP";
    213    this.button3.Click += new System.EventHandler(this.button3_Click);
    214    // 
    215    // groupBox5
    216    // 
    217    this.groupBox5.Controls.Add(this.label1);
    218    this.groupBox5.Controls.Add(this.txtWebUrl);
    219    this.groupBox5.Location = new System.Drawing.Point(0, 444);
    220    this.groupBox5.Name = "groupBox5";
    221    this.groupBox5.Size = new System.Drawing.Size(810, 48);
    222    this.groupBox5.TabIndex = 5;
    223    this.groupBox5.TabStop = false;
    224    this.groupBox5.Text = "要刷网站地址";
    225    // 
    226    // label1
    227    // 
    228    this.label1.Location = new System.Drawing.Point(16, 21);
    229    this.label1.Name = "label1";
    230    this.label1.Size = new System.Drawing.Size(56, 16);
    231    this.label1.TabIndex = 1;
    232    this.label1.Text = "网站地址";
    233    // 
    234    // txtWebUrl
    235    // 
    236    this.txtWebUrl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    237    this.txtWebUrl.Location = new System.Drawing.Point(80, 16);
    238    this.txtWebUrl.Name = "txtWebUrl";
    239    this.txtWebUrl.Size = new System.Drawing.Size(720, 21);
    240    this.txtWebUrl.TabIndex = 0;
    241    this.txtWebUrl.Text = "http://www.51solve.com/";
    242    // 
    243    // Form1
    244    // 
    245    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    246    this.ClientSize = new System.Drawing.Size(810, 575);
    247    this.Controls.Add(this.groupBox5);
    248    this.Controls.Add(this.groupBox4);
    249    this.Controls.Add(this.statusBar1);
    250    this.Controls.Add(this.groupBox1);
    251    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
    252    this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
    253    this.MaximizeBox = false;
    254    this.Name = "Form1";
    255    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    256    this.Text = "网站流量访问程序制作:红色银狐";
    257    this.groupBox1.ResumeLayout(false);
    258    this.groupBox3.ResumeLayout(false);
    259    ((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).EndInit();
    260    this.groupBox2.ResumeLayout(false);
    261    ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
    262    this.groupBox4.ResumeLayout(false);
    263    this.groupBox5.ResumeLayout(false);
    264    this.ResumeLayout(false);
    265 
    266   }
    267   #endregion
    268 
    269   /// <summary>
    270   /// 应用程序的主入口点。
    271   /// </summary>
    272   [STAThread]
    273   static void Main() 
    274   {
    275    Application.Run(new Form1());
    276   }
    277   //定义结构体代理信息
    278   public struct Struct_INTERNET_PROXY_INFO 
    279   { 
    280    public int dwAccessType; 
    281    public IntPtr proxy; 
    282    public IntPtr proxyBypass; 
    283   }; 
    284   [DllImport("wininet.dll", SetLastError = true)] 
    285   private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
    286 
    287   private void RefreshIESettings(string strProxy) 
    288   { 
    289    const int INTERNET_OPTION_PROXY = 38; 
    290    const int INTERNET_OPEN_TYPE_PROXY = 3; 
    291 
    292    Struct_INTERNET_PROXY_INFO struct_IPI; 
    293 
    294    // Filling in structure 
    295    struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY; 
    296    struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy); 
    297    struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local"); 
    298 
    299    // Allocating memory 
    300    IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI)); 
    301 
    302    // Converting structure to IntPtr 
    303    Marshal.StructureToPtr(struct_IPI, intptrStruct, true); 
    304 
    305    bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI)); 
    306   } 
    307 
    308   private void StartShua() 
    309   { 
    310    statusBar1.Panels[0].Text = "正在使用" + arrText[k].ToString() + "代理IP访问网站";
    311    this.listBox1.SetSelected(k,true);
    312    RefreshIESettings(arrText[k].ToString()); 
    313    System.Object nullObject = 0; 
    314    string strTemp = String.Empty; 
    315    System.Object nullObjStr = strTemp;
    316    axWebBrowser1.Navigate(strUrl, ref nullObject, ref nullObjStr, ref nullObjStr, ref nullObjStr);
    317    k+=1;
    318    if(k>=i)k=0;
    319   }
    320   private void button1_Click_1(object sender, System.EventArgs e)
    321   {
    322    arrText.Clear();
    323    i = 0;
    324    if(openFileDialog1.ShowDialog() ==DialogResult.OK)
    325    {
    326     string strPath,strLine = "";
    327     strPath = openFileDialog1.FileName.ToString();
    328     StreamReader sr = new StreamReader(strPath);
    329     while(strLine != null)
    330     {
    331      strLine = sr.ReadLine();
    332      if(strLine != null)
    333      {
    334       i+=1;
    335       arrText.Add(strLine);
    336       listBox1.Items.Add(strLine);
    337      }
    338     }
    339     sr.Close();
    340    }
    341   }
    342   private void timer1_Tick(object sender, System.EventArgs e)
    343   {
    344    StartShua();
    345   }
    346 
    347   private void button2_Click(object sender, System.EventArgs e)
    348   {
    349    Total = listBox1.Items.Count;
    350    strUrl = txtWebUrl.Text;
    351    if(button2.Text == "开始刷流量")
    352    {
    353     if(i == 0 && Total == 0)return;
    354     if(strUrl.Length == 0)return;
    355     StartShua();
    356     button2.Text = "停止刷流量";
    357     timer1.Enabled = true;
    358     timer1.Start();
    359     button1.Enabled = false;
    360     button3.Enabled = false;
    361    }
    362    else
    363    {
    364     timer1.Stop();
    365     timer1.Enabled = false;
    366     button2.Text = "开始刷流量";
    367     button1.Enabled = true;
    368     button3.Enabled = true;
    369     arrText.Clear();
    370    }
    371   }
    372 
    373   private void button3_Click(object sender, System.EventArgs e)
    374   {
    375    arrText.Clear();
    376    i = 0;
    377    listBox1.Items.Clear();
    378    string strHtml = "";
    379    string strPort = "";
    380    string strResultIP = "";
    381    long PosB = 0;
    382    long PosA = 0;
    383    long PosC = 0;
    384    string Url = "http://www.pass-e.com/proxy/";
    385    try
    386    {
    387     strHtml = GetHtml(Url);
    388     strHtml = checkStr(strHtml);
    389     strHtml = strHtml.ToLower();
    390     PosA = strHtml.IndexOf("list",0);
    391     //MessageBox.Show(GetHtml(Url));
    392     while(PosA>0)
    393     {
    394      i+=1;
    395      PosB = strHtml.IndexOf(",",(int)PosA);
    396      strResultIP = strHtml.Substring((int)PosA,(int)PosB-(int)PosA);
    397      strResultIP = strResultIP.Replace("list","");
    398      PosC = strHtml.IndexOf(",",(int)PosB+1);
    399      strPort = strHtml.Substring((int)PosB,(int)PosC-(int)PosB);
    400      strPort = strPort.Replace(",","");
    401      listBox1.Items.Add(strResultIP+":"+strPort);
    402      PosA = strHtml.IndexOf("list",(int)PosC);
    403      arrText.Add(strResultIP+":"+strPort);
    404     }
    405    }
    406    catch(Exception ex)
    407    {
    408     MessageBox.Show(ex.Message,TitleInfo,MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    409    }
    410   }
    411   public string checkStr(string html) 
    412   { 
    413    string str = Convert.ToString((char)34);
    414    
    415    Regex regex1 = new Regex(@"<mce:script[/s/S]+</script *><!--
    416 ", RegexOptions.IgnoreCase); 
    417    Regex regex2 = new Regex(@" href *= *[/s/S]*script *:", RegexOptions.IgnoreCase); 
    418    Regex regex3 = new Regex(@" no[/s/S]*=", RegexOptions.IgnoreCase); 
    419    Regex regex4 = new Regex(@"<iframe[/s/S]+</iframe *>", RegexOptions.IgnoreCase); 
    420    Regex regex5 = new Regex(@"<frameset[/s/S]+</frameset *>", RegexOptions.IgnoreCase); 
    421    Regex regex6 = new Regex(@"/<img[^/>]+/>", RegexOptions.IgnoreCase);  
    422    Regex regex7 = new Regex(@"</p>", RegexOptions.IgnoreCase); 
    423    Regex regex8 = new Regex(@"<p>", RegexOptions.IgnoreCase); 
    424    Regex regex9 = new Regex(@"<[^>]*>", RegexOptions.IgnoreCase);
    425    html = html.Replace("/r/n","");
    426    //html = regex1.Replace(html, ""); //过滤<script>
    427 // --></mce:script>标记 
    428    html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性 
    429    html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件 
    430    html = regex4.Replace(html, ""); //过滤iframe 
    431    html = regex5.Replace(html, ""); //过滤frameset 
    432    html = regex6.Replace(html, ""); //过滤frameset 
    433    html = regex7.Replace(html, ""); //过滤frameset 
    434    html = regex8.Replace(html, ""); //过滤frameset 
    435    html = regex9.Replace(html, ""); 
    436    html = html.Replace(" ", ""); 
    437    html = html.Replace("</strong>", ""); 
    438    html = html.Replace("<strong>", "");
    439    html = html.Replace("/n","");
    440    html = html.Replace(str ,"");
    441    html = html.Replace("}" ,"");
    442    html = html.Replace("(" ,"");
    443    html = html.Replace(")" ,"");
    444    //html = html.Replace(";" ,"");
    445    html = html.Replace("'" ,"");
    446    html = html.Replace(" " ,"");
    447    html = html.Replace(" ","");
    448    return html; 
    449   }
    450   public string GetHtml(string myUrl) 
    451   { 
    452    HttpWebRequest myHttpWebRequest; 
    453     
    454    HttpWebResponse myHttpWebResponse; 
    455     
    456    //string Html; 
    457     
    458    try 
    459    { 
    460         
    461     string URL = myUrl; 
    462         
    463     Uri myUri = new Uri(myUrl); 
    464         
    465     WebRequest myWebRequest = WebRequest.Create(URL); 
    466         
    467     //使用Creat方法创建WebRequest实例 
    468         
    469     myHttpWebRequest = (HttpWebRequest)myWebRequest; 
    470         
    471     //实现WebRequest类型和HttpWebRequest类型的转换 
    472         
    473     WebResponse myWebResponse = myHttpWebRequest.GetResponse(); 
    474         
    475     //获得响应信息 
    476         
    477     myHttpWebResponse = (HttpWebResponse)myWebResponse; 
    478         
    479     Stream myStream = myHttpWebResponse.GetResponseStream(); 
    480         
    481     //获得从当前Internet资源返回的响应流数据 
    482         
    483     StreamReader srReader = new StreamReader(myStream, Encoding.Default); 
    484         
    485     //利用获得的响应流和系统缺省编码来初始化StreamReader实例。 
    486         
    487     string sTemp = srReader.ReadToEnd(); 
    488         
    489     //从响应流从读取数据 
    490         
    491     srReader.Close(); 
    492         
    493     return sTemp; 
    494    } 
    495     
    496     //显示读取的数据 ( ) 
    497     
    498    catch (WebException WebExcp) 
    499    { 
    500         
    501     return WebExcp.Message.ToString(); 
    502    } 
    503   } 
    504  }
    505 
    506 }
    507 
    508 
    509 
    510 
    511 
    512 通过它的实现,只要你有足够的代理IP那么你的网站流量变飞速的提升。
  • 相关阅读:
    主流数据库连接池性能比较 hikari druid c3p0 dbcp jdbc
    Dubbo 分布式事务一致性实现
    微服务实现事务一致性实例
    微服务间保持事务一致性
    海量积分数据实时排名处理方式介绍二
    Java两种方法实现循环报数
    MySQL 千万级 数据库或大表优化
    Linux 中 Nginx 重启关闭
    Linux 中 Oracle dmp 文件导入导出
    Linux 中 Oracle 数据库启动和关闭
  • 原文地址:https://www.cnblogs.com/mvc2014/p/3671111.html
Copyright © 2020-2023  润新知