原创地址:http://www.iteye.com/topic/755696
刚才无意间看到一个投票,在页面右键,源码,看了下,就几个字段,很简单。
打开eclipse,操上httpclient模拟下,就可以投票了。
然后循环,,,, 发现“对不起,您已经提交了”。加了验证,没有登录可以提交,过了会刷页面还是可以提交。
说明不是通过ip控制了,那就是用ip+时间控制的了。
试了下,10s的延时可以,9s都貌似不行。
投票地址:
http://page.vote.qq.com/?id=141068&result=yes
投票代码:
- import java.io.IOException;
-
import java.io.UnsupportedEncodingException;
-
-
import org.apache.commons.httpclient.HttpClient;
-
import org.apache.commons.httpclient.HttpException;
-
import org.apache.commons.httpclient.NameValuePair;
-
import org.apache.commons.httpclient.cookie.CookiePolicy;
-
import org.apache.commons.httpclient.methods.PostMethod;
-
-
public class QQVoteGuomei {
-
-
private static String VOTE_SHOW = "http://page.vote.qq.com/?id=141068&result=yes";
-
private static String VOTE = "http://input.vote.qq.com/survey.php";
-
-
-
-
-
-
-
-
public static void main(String[] args) throws HttpException, IOException, InterruptedException {
-
-
-
-
-
int i = 1;
-
while(true){
-
System.out.println("==> 第 " + i++ +" 次投票.");
- vote();
-
-
Thread.sleep(10000);
- }
-
-
- }
-
-
private static void vote() throws IOException, HttpException, UnsupportedEncodingException {
-
HttpClient client = new HttpClient();
- client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
-
-
-
PostMethod post = new PostMethod(VOTE);
- post
- .addRequestHeader(
-
"User-Agent",
-
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; CIBA; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; msn OptimizedIE8;ZHCN)");
-
post.addRequestHeader("Host", "page.vote.qq.com:80");
-
post.setRequestHeader("Referer", VOTE_SHOW);
-
-
NameValuePair[] nvp = new NameValuePair[5];
-
-
-
-
-
nvp[0] = new NameValuePair("PjtID", "141068");
-
nvp[1] = new NameValuePair("result", "0");
-
nvp[2] = new NameValuePair("sbj_361707[]", "25593");
-
nvp[3] = new NameValuePair("sbj_361708[]", "25596");
-
nvp[4] = new NameValuePair("sbj_361709[]", "25598");
-
- post.setRequestBody(nvp);
-
-
-
int statusCode = client.executeMethod(post);
-
System.out.println("statusCode : " + statusCode);
-
-
if (statusCode == 200) {
-
if (post.getResponseBody() != null) {
-
String response1String = new String(post.getResponseBody(),"gbk");
- System.out.println(response1String);
- }
- }
-
- }
-
- }
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;
public class QQVoteGuomei {
private static String VOTE_SHOW = "http://page.vote.qq.com/?id=141068&result=yes";
private static String VOTE = "http://input.vote.qq.com/survey.php";
/**
* @param args
* @throws IOException
* @throws HttpException
* @throws InterruptedException
*/
public static void main(String[] args) throws HttpException, IOException, InterruptedException {
// TODO Auto-generated method stub
//int count = 10000000;
//for (int i = 0; i < count; i++) {
int i = 1;
while(true){
System.out.println("==> 第 " + i++ +" 次投票.");
vote();
//if(i < count - 1)
Thread.sleep(10000);
}
//}
}
private static void vote() throws IOException, HttpException, UnsupportedEncodingException {
HttpClient client = new HttpClient();
client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
PostMethod post = new PostMethod(VOTE);
post
.addRequestHeader(
"User-Agent",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; CIBA; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; msn OptimizedIE8;ZHCN)");
post.addRequestHeader("Host", "page.vote.qq.com:80");
post.setRequestHeader("Referer", VOTE_SHOW);
NameValuePair[] nvp = new NameValuePair[5];
// <input type="hidden" name="PjtID" value="141068" >
// <input type="hidden" name="result" value="0" >
nvp[0] = new NameValuePair("PjtID", "141068");
nvp[1] = new NameValuePair("result", "0");
nvp[2] = new NameValuePair("sbj_361707[]", "25593");
nvp[3] = new NameValuePair("sbj_361708[]", "25596");
nvp[4] = new NameValuePair("sbj_361709[]", "25598");
post.setRequestBody(nvp);
// 使用POST方式提交数据
int statusCode = client.executeMethod(post);
System.out.println("statusCode : " + statusCode);
if (statusCode == 200) {
if (post.getResponseBody() != null) {
String response1String = new String(post.getResponseBody(),"gbk");
System.out.println(response1String);
}
}
}
}
输出:
==> 第 1 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
==> 第 2 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
==> 第 3 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
==> 第 4 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
==> 第 5 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
==> 第 6 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
==> 第 7 次投票.
statusCode : 200
<script>try{document.domain="qq.com";window.parent.AppPlatform.Survey.Input.callback("0","361707-25593:1:0|361708-25596:1:0|361709-25598:1:0");}catch(e){alert("提交成功,谢谢参与!");if(0==141068){window.opener=null;window.close();}else{window.location.replace("http://page.vote.qq.com?id=141068&result=yes");}}</script>
........
--------------------------------------------------------------------------
一般的灌水机,投票机,注册机大概就是这个样子的:
1\分页页面表单元素
2\分析页面跳转流程
3\ 获取和分析验证码
4、模拟表单提交
5、保持cookie
6、执行操作
7、分析返回结果
分享到:
相关推荐
本投票系统,实现三个角色: 选民、备选对象、管理员; 实现参加票选、管理投票...说明:投票模拟系统除了**排名 **功能的算法还没有写,其余功能的算法均已完成,为了方便测试,选民和备选对象均已初始化了三组数据。
C++ 模拟投票系统(小程序)利用c++编写的投票系统,主要是类的设计,两个类
模拟投票C语言,适合个人学习,值得初学者去学习 模拟投票C语言,适合个人学习,值得初学者去学习
rar文件 模拟微信访问wap页面刷投票
通过JS模仿的投票工具demo,将json格式的数据统计展示,支持自定义展示颜色,详情见demo:demo.html,demo2vote.html
模拟HTTP链接,解析http协议内容,通过自定义IP和调用代理IP,实现投票功能,仅供学习研究
1. 允许系统管理用户设定系统投票主题以及投票选项,具有添加、删除、修改功能,选择当前投票主题(系统在一时间段只能开启一个投票主题)。 2. 系统管理用户可以设定系统IP地址和端口号、投票有效时间、是否允许...
手机投票系统 设置界面 模拟手机投票系统
对初学者又用,可以实现简单的投票,用户管理
用C#做的在线投票系统 在线投票 模拟
而且该软件完全模拟手工操作快速投票,用户只要运行软件即可,无需在电脑前看管。 自动投票工具2014软件可支持有验证码以及需注册账号的投票,它能够快速破解验证码,识别各大知名网站的图型验证码。软件提供的辅助...
2、等于普通的投票及投票屏蔽作用是有效的,但是对于模拟提交的刷屏行为没有抵挡能力。 由于本系统改进时间是在2012年,且当时只是用于某单位内部投票。所以并未做深入的程序优化。 建议使用本系统的用于小范围如...
模拟投票---》普通投票方式,获取网页信息后点击开始即可,适合菜鸟使用! 协议投票---》高级投票方式,需要懂得网络协议,你要添加相关的get和post信息,还要添加附加协议头和提交的信息才能使用,适合高手。
本投票主要采用java实现,投票及返回结果过程采用的Ajax,读取xml文件中的投票项为Dom4j 并使用简单的js控制css在页面实现动态效果 内附说明文档
此投票系统是模拟平时选举先进的方式(如从10人中选举3名先进人员。得票多者当选)。 该系统要求至少有四个页面:分别为登录页面,投票页面,统计投票结果页面,系统设置页面等。该系统需要的数据库由自己设计并...
javaweb投票统计模块源代码,该代码用javaweb做了一个投票模块,要做和该模块相关的可以参考下
1. 课题研究主要功能目标 本项目的主要目标是开发一个简易的观众投票系统,用于模拟电视大赛中的观众投票过程。系统的核心功能包括: • 允许输入一定数量的参赛选手信息(编号和姓名)。 • 实现观众投票功能,观众...
Web基础的一个实训,制作一个投票网站,可以进行投票和票数统计功能。 采用CSS+div或者表格进行网页布局,采用是CSS+div的...用图形化方式,展示使用模拟数据的投票结果,使用javaScript和CSS简单动画数据展示功能。
urna 此代码模拟投票箱。 使用队列,列表和堆栈,此代码是一个挑战。 在此项目中,您可以向市长和市议员插入候选人,然后进行投票。 投票后,将显示投票数据,以及每个候选人的投票百分比。 以上都不是。
模拟网页操作的工具,可以模拟自动操作网页完成任务。比如投票,信息录入等等