很多朋友都想如何提高自己的网站流量,可是都没有什么好的办法
经过很长时间的研究,在C#中实现了,当然了,这部分代码其中一部分是网上的,不是原创。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
using System.Net;
namespace WebSock
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.GroupBox groupBox1;
private AxSHDocVw.AxWebBrowser axWebBrowser1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.Timer timer1;
private System.ComponentModel.IContainer components;
private System.Windows.Forms.StatusBar statusBar1;
private System.Windows.Forms.StatusBarPanel statusBarPanel1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Button button3;
ArrayList arrText = new ArrayList();
int Total = 0;
int i,k=0;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtWebUrl;
private const string TitleInfo = "程序制作红色银狐";
private System.Windows.Forms.ListBox listBox1;
private string strUrl = "";
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.axWebBrowser1 = new AxSHDocVw.AxWebBrowser();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.statusBar1 = new System.Windows.Forms.StatusBar();
this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.button3 = new System.Windows.Forms.Button();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.label1 = new System.Windows.Forms.Label();
this.txtWebUrl = new System.Windows.Forms.TextBox();
this.groupBox1.SuspendLayout();
this.groupBox3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).BeginInit();
this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
this.groupBox4.SuspendLayout();
this.groupBox5.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.groupBox3);
this.groupBox1.Controls.Add(this.groupBox2);
this.groupBox1.Location = new System.Drawing.Point(0, 0);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(810, 440);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
//
// groupBox3
//
this.groupBox3.Controls.Add(this.axWebBrowser1);
this.groupBox3.Location = new System.Drawing.Point(312, 8);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(490, 424);
this.groupBox3.TabIndex = 2;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "浏览器";
//
// axWebBrowser1
//
this.axWebBrowser1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.axWebBrowser1.ContainingControl = this;
this.axWebBrowser1.Enabled = true;
this.axWebBrowser1.Location = new System.Drawing.Point(8, 16);
this.axWebBrowser1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axWebBrowser1.OcxState")));
this.axWebBrowser1.Size = new System.Drawing.Size(474, 400);
this.axWebBrowser1.TabIndex = 0;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.listBox1);
this.groupBox2.Location = new System.Drawing.Point(8, 8);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(296, 424);
this.groupBox2.TabIndex = 1;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "代理IP地址";
//
// listBox1
//
this.listBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(8, 16);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(280, 398);
this.listBox1.TabIndex = 2;
//
// button1
//
this.button1.Location = new System.Drawing.Point(310, 16);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(176, 32);
this.button1.TabIndex = 1;
this.button1.Text = "载入代理IP";
this.button1.Click += new System.EventHandler(this.button1_Click_1);
//
// button2
//
this.button2.Location = new System.Drawing.Point(486, 16);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(176, 32);
this.button2.TabIndex = 2;
this.button2.Text = "开始刷流量";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// timer1
//
this.timer1.Interval = 10000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// statusBar1
//
this.statusBar1.Dock = System.Windows.Forms.DockStyle.None;
this.statusBar1.Location = new System.Drawing.Point(0, 552);
this.statusBar1.Name = "statusBar1";
this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
this.statusBarPanel1});
this.statusBar1.ShowPanels = true;
this.statusBar1.Size = new System.Drawing.Size(810, 24);
this.statusBar1.TabIndex = 3;
//
// statusBarPanel1
//
this.statusBarPanel1.Width = 820;
//
// groupBox4
//
this.groupBox4.Controls.Add(this.button3);
this.groupBox4.Controls.Add(this.button2);
this.groupBox4.Controls.Add(this.button1);
this.groupBox4.Location = new System.Drawing.Point(0, 496);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(810, 56);
this.groupBox4.TabIndex = 4;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "操作区";
//
// button3
//
this.button3.Location = new System.Drawing.Point(134, 16);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(176, 32);
this.button3.TabIndex = 3;
this.button3.Text = "从网络获取代理IP";
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// groupBox5
//
this.groupBox5.Controls.Add(this.label1);
this.groupBox5.Controls.Add(this.txtWebUrl);
this.groupBox5.Location = new System.Drawing.Point(0, 444);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(810, 48);
this.groupBox5.TabIndex = 5;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "要刷网站地址";
//
// label1
//
this.label1.Location = new System.Drawing.Point(16, 21);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 16);
this.label1.TabIndex = 1;
this.label1.Text = "网站地址";
//
// txtWebUrl
//
this.txtWebUrl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtWebUrl.Location = new System.Drawing.Point(80, 16);
this.txtWebUrl.Name = "txtWebUrl";
this.txtWebUrl.Size = new System.Drawing.Size(720, 21);
this.txtWebUrl.TabIndex = 0;
this.txtWebUrl.Text = "http://www.51solve.com/";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(810, 575);
this.Controls.Add(this.groupBox5);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.statusBar1);
this.Controls.Add(this.groupBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "网站流量访问程序制作:红色银狐";
this.groupBox1.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).EndInit();
this.groupBox2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
this.groupBox4.ResumeLayout(false);
this.groupBox5.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
//定义结构体代理信息
public struct Struct_INTERNET_PROXY_INFO
{
public int dwAccessType;
public IntPtr proxy;
public IntPtr proxyBypass;
};
[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
private void RefreshIESettings(string strProxy)
{
const int INTERNET_OPTION_PROXY = 38;
const int INTERNET_OPEN_TYPE_PROXY = 3;
Struct_INTERNET_PROXY_INFO struct_IPI;
// Filling in structure
struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);
struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");
// Allocating memory
IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));
// Converting structure to IntPtr
Marshal.StructureToPtr(struct_IPI, intptrStruct, true);
bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
}
private void StartShua()
{
statusBar1.Panels[0].Text = "正在使用" + arrText[k].ToString() + "代理IP访问网站";
this.listBox1.SetSelected(k,true);
RefreshIESettings(arrText[k].ToString());
System.Object nullObject = 0;
string strTemp = String.Empty;
System.Object nullObjStr = strTemp;
axWebBrowser1.Navigate(strUrl, ref nullObject, ref nullObjStr, ref nullObjStr, ref nullObjStr);
k+=1;
if(k>=i)k=0;
}
private void button1_Click_1(object sender, System.EventArgs e)
{
arrText.Clear();
i = 0;
if(openFileDialog1.ShowDialog() ==DialogResult.OK)
{
string strPath,strLine = "";
strPath = openFileDialog1.FileName.ToString();
StreamReader sr = new StreamReader(strPath);
while(strLine != null)
{
strLine = sr.ReadLine();
if(strLine != null)
{
i+=1;
arrText.Add(strLine);
listBox1.Items.Add(strLine);
}
}
sr.Close();
}
}
private void timer1_Tick(object sender, System.EventArgs e)
{
StartShua();
}
private void button2_Click(object sender, System.EventArgs e)
{
Total = listBox1.Items.Count;
strUrl = txtWebUrl.Text;
if(button2.Text == "开始刷流量")
{
if(i == 0 && Total == 0)return;
if(strUrl.Length == 0)return;
StartShua();
button2.Text = "停止刷流量";
timer1.Enabled = true;
timer1.Start();
button1.Enabled = false;
button3.Enabled = false;
}
else
{
timer1.Stop();
timer1.Enabled = false;
button2.Text = "开始刷流量";
button1.Enabled = true;
button3.Enabled = true;
arrText.Clear();
}
}
private void button3_Click(object sender, System.EventArgs e)
{
arrText.Clear();
i = 0;
listBox1.Items.Clear();
string strHtml = "";
string strPort = "";
string strResultIP = "";
long PosB = 0;
long PosA = 0;
long PosC = 0;
string Url = "http://www.pass-e.com/proxy/";
try
{
strHtml = GetHtml(Url);
strHtml = checkStr(strHtml);
strHtml = strHtml.ToLower();
PosA = strHtml.IndexOf("list",0);
//MessageBox.Show(GetHtml(Url));
while(PosA>0)
{
i+=1;
PosB = strHtml.IndexOf(",",(int)PosA);
strResultIP = strHtml.Substring((int)PosA,(int)PosB-(int)PosA);
strResultIP = strResultIP.Replace("list","");
PosC = strHtml.IndexOf(",",(int)PosB+1);
strPort = strHtml.Substring((int)PosB,(int)PosC-(int)PosB);
strPort = strPort.Replace(",","");
listBox1.Items.Add(strResultIP+":"+strPort);
PosA = strHtml.IndexOf("list",(int)PosC);
arrText.Add(strResultIP+":"+strPort);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,TitleInfo,MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
public string checkStr(string html)
{
string str = Convert.ToString((char)34);
Regex regex1 = new Regex(@"<mce:script[\s\S]+</script *><!--
", RegexOptions.IgnoreCase);
Regex regex2 = new Regex(@" href *= *[\s\S]*script *:", RegexOptions.IgnoreCase);
Regex regex3 = new Regex(@" no[\s\S]*=", RegexOptions.IgnoreCase);
Regex regex4 = new Regex(@"<iframe[\s\S]+</iframe *>", RegexOptions.IgnoreCase);
Regex regex5 = new Regex(@"<frameset[\s\S]+</frameset *>", RegexOptions.IgnoreCase);
Regex regex6 = new Regex(@"\<img[^\>]+\>", RegexOptions.IgnoreCase);
Regex regex7 = new Regex(@"</p>", RegexOptions.IgnoreCase);
Regex regex8 = new Regex(@"<p>", RegexOptions.IgnoreCase);
Regex regex9 = new Regex(@"<[^>]*>", RegexOptions.IgnoreCase);
html = html.Replace("\r\n","");
//html = regex1.Replace(html, ""); //过滤<script>
// --></mce:script>标记
html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性
html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on...事件
html = regex4.Replace(html, ""); //过滤iframe
html = regex5.Replace(html, ""); //过滤frameset
html = regex6.Replace(html, ""); //过滤frameset
html = regex7.Replace(html, ""); //过滤frameset
html = regex8.Replace(html, ""); //过滤frameset
html = regex9.Replace(html, "");
html = html.Replace(" ", "");
html = html.Replace("</strong>", "");
html = html.Replace("<strong>", "");
html = html.Replace("\n","");
html = html.Replace(str ,"");
html = html.Replace("}" ,"");
html = html.Replace("(" ,"");
html = html.Replace(")" ,"");
//html = html.Replace(";" ,"");
html = html.Replace("'" ,"");
html = html.Replace(" " ,"");
html = html.Replace(" ","");
return html;
}
public string GetHtml(string myUrl)
{
HttpWebRequest myHttpWebRequest;
HttpWebResponse myHttpWebResponse;
//string Html;
try
{
string URL = myUrl;
Uri myUri = new Uri(myUrl);
WebRequest myWebRequest = WebRequest.Create(URL);
//使用Creat方法创建WebRequest实例
myHttpWebRequest = (HttpWebRequest)myWebRequest;
//实现WebRequest类型和HttpWebRequest类型的转换
WebResponse myWebResponse = myHttpWebRequest.GetResponse();
//获得响应信息
myHttpWebResponse = (HttpWebResponse)myWebResponse;
Stream myStream = myHttpWebResponse.GetResponseStream();
//获得从当前Internet资源返回的响应流数据
StreamReader srReader = new StreamReader(myStream, Encoding.Default);
//利用获得的响应流和系统缺省编码来初始化StreamReader实例。
string sTemp = srReader.ReadToEnd();
//从响应流从读取数据
srReader.Close();
return sTemp;
}
//显示读取的数据 ( )
catch (WebException WebExcp)
{
return WebExcp.Message.ToString();
}
}
}
}