【网上投票刷票程序开发】-概述

 

      这两天我家北鼻给我出了个小难题,让我帮她投票一个网站。并问我如何能够伪造访问网页的IP地址,这可是给我出了个大难题,整理一晚上才有点眉目

一、基本思路分为两步

1、获取投票的真实路径

真实路径就是在投票页面选择投票的项目后,网页提交到后台处理的页面。通常用GET或者POST的方式。由于投票页面都会对后台处理的网址做一点小处理,经常是通过javascript进行处理。如何提取就不再详述,仁者见仁了。

2、突破ip限制进行循环投票

通常投票发起人为了保证所谓的公平,会对每个ip地址投票的次数进行显示。如:每个ip能投10次。由于伪造访问服务器的$_server[ remote_addr ]基本是不可能的事情。所以只能另辟蹊径,主要就是使用了HTTP代理服务器。获取代理服务器的方法当然就是度娘了搜索了,将网页提供的HTTP代理服务器的端口与IP整理成程序能够识别的格式。能够使得程序一条一条的解读。

 

二、概念阐述完毕,分享代码部分

1、以下该投票程序的核心逻辑代码,当然是最简单的逻辑。我个人比较懒惰觉得速度不快就多开几个窗口便是,有能力的人也可能在这基础上稍加变动,如:多线程,改成winform程序等。提高程序的操作性和速度。

            FileStream fs = new FileStream("ip.txt", FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(fs);
            string str;
            string[] str1 = new string[2];
            while (!sr.EndOfStream)
            {
                str = sr.ReadLine();
                str1 = str.Split(':');
                string s1 = str1[0];
                string s2 = str1[1];
                int i = 0;
                for (i = 0; i < 100; i++)
                {
                    try
                    {
                        HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");
                        //这的网站即便是投票记录到数据库的处理页面
                        httpRequest.Timeout = 5000;
                        //设置timeout时间,并不是每个带服务器都有用的
                        httpRequest.Method = "GET";
                        System.Net.WebProxy proxy = new WebProxy(s1, Convert.ToInt32(s2));
                        //设置代理的对象信息
                        httpRequest.Proxy = proxy;
                        //Proxy赋值对象
                        HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
                        StreamReader sr1 = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
                        string result = sr1.ReadToEnd();
                        result = result.Replace("\r", "").Replace("\n", "").Replace("\t", "");
                        if (result.Contains("######"))
                        //从反馈的html中判断投票是否成功
                        {
                            Console.WriteLine("投过了:" + s1);
                            break;
                        }
                        Console.WriteLine(s1+":"+result);
                        int status = (int)httpResponse.StatusCode;
                        sr1.Close();
                    }
                    catch {
                        //代理服务器超时处理
                        Console.WriteLine("超时:"+s1);
                        break;
                    }
                }
            }
            sr.Close();
            fs.Close();

2、代理服务器的格式为XXX.XXX.XXX.XXX:PORXY,将代理服务器写入IP.txt放到程序的可执行文件的同目录下。IP.txt内容例子如下:

1.85.2.253:8001
1.93.8.169:3128
1.255.53.81:80
5.56.12.5:8080
5.56.61.185:12980
5.56.61.185:19350
5.178.66.108:3128
5.206.237.26:8080
5.226.86.83:80
27.116.62.75:8080
……
#代理服务器一般有效时间比较短,最好百度获取最新的!

 

 

 工程项目打包下载地址如下:网络投票程序.rar

 

 

标签: C#  c sharp  

有0条评论

添加新评论