使用代理IP,点击你的链接

   我想有很多人想用不同的IP点击一个链接吧,想多提升点广告的点击量吧(呵呵,你别有用心的话后果自负),今天做个使用代理IP来点击链接的小软件,测试过,一般情况下没问题。
       大家不想以为这是多么高深的技术,或者多么复杂的技术。简单来说,C#4句话搞定:
               WebClient wc = new WebClient();
                WebProxy proxy = new WebProxy(ip);
                wc.Proxy = proxy;
                wc.DownloadData(link);
       呵呵,但是小工具成型的话,这几句话就不OK啦。基本思路就是用多线程用N个IP去循环处理N个链接。但这个过程需要一段时间,因此用单线程的话会造成程序长时间未响应,WINDOWS会报错。
  在这个小工具中,需要处理IP数组和链接数组,稍微人性化一点,加个进度条。这里唯一个小难点就是非创建控件线程访问该控件会抛出异常。
                ThreadStart ts = new ThreadStart(Run);
                Thread t = new Thread(ts);
                t.Start();
       用一个新线程启动主要模块
                void Run()
                {
                      progressBar1.Value++;
                }
       问题出现了,运行到progressBar1.Value++时异常就出现了,如上所述.
       解决办法很简单:
       public delegate void ProgressBar1InitInvokeDelegate();
       public void ChangeProgressBarValue()
        {
            if (progressBar1.InvokeRequired == true)
            {
                progressBar1.BeginInvoke(new ProgressBar1InvokeDelegate(ChangeProgressBarValue));
            }
            else
            {
                progressBar1.Value++;
            }
        }

        void Run()
                {
                      ChangeProgressBarValue();
                }
       接下来还想什么,网上找些代理IP去试试吧,祝您一路“点”通!:)
       第一次,不会上传包,代码贴在下面:
    .cs文件
namespace  WebClicker
{
    
public partial class Clicker : Form
    
{
        
= State =
        
public delegate void Button2InvokeDelegate(string text);
        
public delegate void ProgressBar1InvokeDelegate();
        
public delegate void ProgressBar1InitInvokeDelegate(int value);
        
public delegate void lblInfoInvokeDelegate(string text);

        
public Clicker()
        
{
            InitializeComponent();
        }


        
public enum ProcessState
        
{
            Begin 
= 0,
            Stop 
= 1
        }


        
public void ChangelblInfoText(string text)
        
{
            
if (lblInfo.InvokeRequired == true)
            
{
                lblInfo.BeginInvoke(
new lblInfoInvokeDelegate(ChangelblInfoText), new object[] { text });
            }

            
else
            
{
                lblInfo.Text 
= text;
            }

        }


        
public void ChangeButton2Text(string text)
        
{
            
if (button2.InvokeRequired == true)
            
{
                button2.BeginInvoke(
new Button2InvokeDelegate(ChangeButton2Text), new object[] { text });
            }

            
else
            
{
                button2.Text 
= text;
            }

        }

        
public void InitprogressBar(int value)
        
{
            
if (progressBar1.InvokeRequired == true)
            
{
                progressBar1.BeginInvoke(
new ProgressBar1InitInvokeDelegate(InitprogressBar), new object[] { value });
            }

            
else
            
{
                progressBar1.Minimum 
= 0;
                progressBar1.Maximum 
= value;
                progressBar1.Step 
= 1;
                progressBar1.Visible 
= true;
                progressBar1.Value 
= 0;
            }

        }

        
public void ChangeProgressBarValue()
        
{
            
if (progressBar1.InvokeRequired == true)
            
{
                progressBar1.BeginInvoke(
new ProgressBar1InvokeDelegate(ChangeProgressBarValue));
            }

            
else
            
{
                progressBar1.Value
++;
            }

        }

        
public void EndProgressBar()
        
{
            
if (progressBar1.InvokeRequired == true)
            
{
                progressBar1.BeginInvoke(
new ProgressBar1InvokeDelegate(EndProgressBar));
            }

            
else
            
{
                progressBar1.Value 
= 0;
                progressBar1.Visible 
= false;
            }

        }


        
private void button1_Click(object sender, EventArgs e)
        
{
            
string temp = Utility.OpenDialog();
            
if (string.IsNullOrEmpty(temp) == false)
            
{
                txtFile.Text 
= temp;
            }

        }


        
private void button4_Click(object sender, EventArgs e)
        
{
            
string temp = Utility.OpenDialog();
            
if (string.IsNullOrEmpty(temp) == false)
            
{
                txtLinkFile.Text 
= temp;
            }

        }


        
private void button2_Click(object sender, EventArgs e)
        
{
            
if (button2.Text.Equals("运行"))
            
{
                ChangelblInfoText(
"正在点击...");
                ThreadStart ts 
= new ThreadStart(Run);
                Thread t 
= new Thread(ts);
                t.Start();
            }

            
else
            
{
                ChangelblInfoText(
"正在停止点击...");
                
this.State = ProcessState.Stop;
            }

        }


        
void Run()
        
{
            
this.State = ProcessState.Begin;
            
if (string.IsNullOrEmpty(txtFile.Text.Trim()) || string.IsNullOrEmpty(txtLinkFile.Text.Trim())) return;
            ChangeButton2Text(
"停止");
            
string temp = System.Text.RegularExpressions.Regex.Replace(Lihui.Common.FileHelper.ReadText(txtFile.Text), " ""|");
            
string[] arrayIP = temp.Split('|');

            InitprogressBar(arrayIP.Length);

            temp 
= System.Text.RegularExpressions.Regex.Replace(Lihui.Common.FileHelper.ReadText(txtLinkFile.Text), " ""|");
            
string[] arrayLink = temp.Split('|');
            List
<string> errorIPList = new List<string>();
            
foreach (string ip in arrayIP)
            
{
                
if (StopThread()) break;
                ChangeProgressBarValue();
                
if (string.IsNullOrEmpty(ip.Trim())) continue;
                WebClient wc 
= new WebClient();
                WebProxy proxy 
= new WebProxy(ip);
                wc.Proxy 
= proxy;
                
foreach (string link in arrayLink)
                
{
                    
if (StopThread()) break;
                    
if (string.IsNullOrEmpty(link.Trim())) continue;
                    
try
                    
{
                        wc.DownloadData(link);
                        ChangelblInfoText(
string.Format("{0}点击{1}一次,正在点击...", ip, link));
                    }

                    
catch
                    
{
                        errorIPList.Add(ip);
                    }

                }

            }


            
foreach (string errip in errorIPList)
            
{
                Lihui.Common.FileHelper.WriteText(Environment.CurrentDirectory 
+ "/ErrorIP/errorIp.txt", errip + Const.ENTER_CHAR, true);
            }

        }

        
bool StopThread()
        
{
            
if (this.State == ProcessState.Stop)
            
{
                ChangeButton2Text(
"运行");
                ChangelblInfoText(
"已停止");
                EndProgressBar();
                
return true;
            }

            
return false;
        }

    }

}
.designer.cs文件:
namespace  WebClicker
{
    
partial class Clicker
    
{
        
/// <summary>
        
/// Required designer variable.
        
/// </summary>

        private System.ComponentModel.IContainer components = null;

        
/// <summary>
        
/// Clean up any resources being used.
        
/// </summary>
        
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)
        
{
            
if (disposing && (components != null))
            
{
                components.Dispose();
            }

            
base.Dispose(disposing);
        }


        
Windows Form Designer generated code

        
private System.Windows.Forms.Button button4;
        
private System.Windows.Forms.Label label2;
        
private System.Windows.Forms.TextBox txtLinkFile;
        
private System.Windows.Forms.Button button1;
        
private System.Windows.Forms.Label label1;
        
private System.Windows.Forms.TextBox txtFile;
        
private System.Windows.Forms.Button button2;
        
private System.Windows.Forms.ProgressBar progressBar1;
        
private System.Windows.Forms.TextBox lblInfo;
    }

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
支持代理协议:   HTTP, HTTPS, FTP, Telnet, NNTP, SMTP, POP, IMAP, LPR, LDAP, ICP, DNS, SSL, Socks   GateProxy.exe 是个能独立运行的软件,实用于Windows系统所有操作系统.支持WIN98(98上可能有少数性能限制,我没有仔细测试),WINNT,WIN2000,WINXP,WIN2003,VISTA系统,可能包括微软以后发布的操作系统,其原因就是直走底层调用,不使用微软基本库 比较适合做入侵的朋友使用,这套代码也可以作为硬件防火墙做代理网关使用,当然要想做也还要手工制作的    文件列表: GateProxy.exe 软件制作说明: 本软件是完全粘贴EXE生成,用HEX进制编辑生成,纯手工制作,软件不支持任何形式的逆向工程和软件反编译 本程序是纯PE格式的文件,软件制作时horse_b用VC++实现了几个基本代理的EXE,基于这几个EXE,采用HEX编 辑生成最后的可执行代码GateProxy.exe 软件中绝对不含任何形式的后门和trojan程序,如果您发现任何木马迹象,请发邮件和我联系 软件使用说明: 请大家自己测试,软件支持命令行输入,也可以安装成服务,如果安装成服务,服务器端口可以走通本软件的所有代理协议 ParisProxy 项目说明 Paris 是欧洲古代神话传说中的特洛衣王子,我是为了怀念几年前研究木马的那段战斗式的生活起的名字,现在就把这个代理服务器叫ParisProxy ParisProxy 命令行参数 命令行参数是:gateproxy.exe -P8989 启动服务,通用代理端口是8989,8989端口可以走通Parisproxy的所有协议,如果不加-P8989就直走单一协议 如果有人和我讨论用HEX和二进制开发软件,可以来信和我讨论: 我的专门受此类问题的EMAIL: [email protected] 或者 [email protected] 请访问网站:www.horseb.org www.horseb.net  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值