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那么你的网站流量变飞速的提升。

 

posted on 2014-04-17 16:39  云上2014  阅读(547)  评论(0编辑  收藏  举报