http模拟投票机(转)

原创地址:http://www.iteye.com/topic/755696

 

刚才无意间看到一个投票,在页面右键,源码,看了下,就几个字段,很简单。

 

打开eclipse,操上httpclient模拟下,就可以投票了。

 

然后循环,,,, 发现“对不起,您已经提交了”。加了验证,没有登录可以提交,过了会刷页面还是可以提交。

说明不是通过ip控制了,那就是用ip+时间控制的了。

 

试了下,10s的延时可以,9s都貌似不行。

 

投票地址:

http://page.vote.qq.com/?id=141068&result=yes

 

 

投票代码:

Java代码 复制代码
  1. import java.io.IOException;   
  2. import java.io.UnsupportedEncodingException;   
  3.   
  4. import org.apache.commons.httpclient.HttpClient;   
  5. import org.apache.commons.httpclient.HttpException;   
  6. import org.apache.commons.httpclient.NameValuePair;   
  7. import org.apache.commons.httpclient.cookie.CookiePolicy;   
  8. import org.apache.commons.httpclient.methods.PostMethod;   
  9.   
  10. public class QQVoteGuomei {   
  11.   
  12.     private static String VOTE_SHOW = "http://page.vote.qq.com/?id=141068&result=yes";   
  13.     private static String VOTE = "http://input.vote.qq.com/survey.php";   
  14.   
  15.     /**  
  16.      * @param args  
  17.      * @throws IOException  
  18.      * @throws HttpException  
  19.      * @throws InterruptedException   
  20.      */  
  21.     public static void main(String[] args) throws HttpException, IOException, InterruptedException {   
  22.         // TODO Auto-generated method stub   
  23.            
  24.         //int count = 10000000;   
  25.         //for (int i = 0; i < count; i++) {   
  26.         int i = 1;   
  27.         while(true){   
  28.             System.out.println("==>  第 " + i++ +" 次投票.");   
  29.             vote();   
  30.             //if(i < count - 1)   
  31.                 Thread.sleep(10000);   
  32.         }   
  33.         //}   
  34.   
  35.     }   
  36.   
  37.     private static void vote() throws IOException, HttpException, UnsupportedEncodingException {   
  38.         HttpClient client = new HttpClient();   
  39.         client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);   
  40.   
  41.   
  42.         PostMethod post = new PostMethod(VOTE);   
  43.         post   
  44.                 .addRequestHeader(   
  45.                         "User-Agent",   
  46.                         "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)");   
  47.         post.addRequestHeader("Host""page.vote.qq.com:80");   
  48.         post.setRequestHeader("Referer", VOTE_SHOW);   
  49.   
  50.         NameValuePair[] nvp = new NameValuePair[5];   
  51.   
  52.         // <input type="hidden" name="PjtID" value="141068" >   
  53.         // <input type="hidden" name="result" value="0" >   
  54.   
  55.         nvp[0] = new NameValuePair("PjtID""141068");   
  56.         nvp[1] = new NameValuePair("result""0");   
  57.         nvp[2] = new NameValuePair("sbj_361707[]""25593");   
  58.         nvp[3] = new NameValuePair("sbj_361708[]""25596");   
  59.         nvp[4] = new NameValuePair("sbj_361709[]""25598");   
  60.   
  61.         post.setRequestBody(nvp);   
  62.   
  63.         // 使用POST方式提交数据   
  64.         int statusCode = client.executeMethod(post);   
  65.         System.out.println("statusCode : " + statusCode);   
  66.   
  67.         if (statusCode == 200) {   
  68.             if (post.getResponseBody() != null) {   
  69.                 String response1String = new String(post.getResponseBody(),"gbk");   
  70.                 System.out.println(response1String);   
  71.             }   
  72.         }   
  73.   
  74.     }   
  75.   
  76. }  
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、分析返回结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值