很多朋友都想如何提高自己的网站流量,可是都没有什么好的办法
经过很长时间的研究,在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();
}
}
}
}