ocean

嘿嘿,我的地盘由我来
随笔 - 93, 文章 - 0, 评论 - 1007, 引用 - 16
数据加载中……

如何编写一个自动投票程序

***********************************************************************************
*                  版权声明                        
*         此文章为ocean所有,版权归ocean所有,任何网站
*和 媒体转载必须包含此段声明,否则将视为侵权,作者将 
* 保留一切权力。此声明为此文章中不可或缺的一部分。 
* 作者网名:ocean                                  
* 作者email:ocean@forever.net.cn                  
* 作者网站:http://www.oceanstudio.net             
*                     http://sps.oceanstudio.net             
* 作者blog:博客园,http://www.cnblogs.com/ocean   
* 此文章发表时间:2005年2月1日                     
* 此文章源: http://www.cnblogs.com/ocean/archive/2005/02/01/100445.html
************************************************************************************
我经常去网站抓些东西,有时也做一些自动填写表单的事情。最近接手了一个投票的任务,也即需要编写一个程序自动投票,从而也引发了如何编写自动投票程序和如何编写投票程序(投票程序怎么样防止自动投票)的话题。正所谓道高一尺、魔高一丈。自动投票和投票程序本身就是一种对弈状态。

如何编写投票程序,大致分为这么几步:

1:手动投票,分析中间出现的每一个页面的代码,找出投票规律。

2:捕获提交页面的时候所post的信息。

3:编程模拟这个手动过程。

我以我刚写的这个自动投票程序为例。在此我不会给出网址链接(保密),也不会给出真实数据和截图。

首先手动投票,是一个多选投票,点击投票按钮后,会弹出一个网页,这个网页会问你是确认还是放弃,点击确认后,返回投票成功的提示。当在此点击投票按钮的时候提示已经投过一票,不能重复投票。关闭所有浏览器窗口,打开一个新窗口,投票,仍然可以投票成功。根据如下行为,可以得出如下结论:

1:投票需要有两次和服务器的交互,第一次向服务器提交投票结果,第二次交互向服务器提交是否确认此结果。

2:此两页面之间的session是有联系的,也即同一个session下不能投两次票。当关闭浏览器,重新开启刘拉尼后,因为相当于新开了一个session,所以仍然会投票成功。

知道了这个后,就开始抓去两次交互的HTTP头信息(Header信息)

第一次交互的信息如下(点击投票按钮):

--------------------------------------------------------------------------

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; .NET CLR 1.1.4322)
Host: xxx.xxx.xxx.xxx
Content-Length: 167
Connection: Keep-Alive
Cache-Control: no-cache

checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22

---------------------------------------------------------------------------------

从网页源代码中可以分析出来,数据是post上去的,post的数据为"checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22",其中checkvalue=32即为投票选中的复选框的值,bbb为投票按钮的名称,"%CD%B6%C6%B1"为"投票"两个汉字的转码。ilc=0和kkk=22是两个隐藏域中信息,作用还不明确。

从网页源代码中可以分析出来,数据是post上去的,post的数据为"checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22",其中checkvalue=32即为投票选中的复选框的值,bbb为投票按钮的名称,"%CD%B6%C6%B1"为"投票"两个汉字的转码。ilc=0和kkk=22是两个隐藏域中信息,作用还不明确。

然后接收到的Header如下:

-------------------------------------------------------------

Date: Wed, 05 Jan 2005 12:45:10 GMT
Server: Apache/1.3.27 (Win32)
X-Powered-By: PHP/4.1.2
Set-Cookie: ilc=22
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

--------------------------------------------------------------------

可以看到里面有一个关键的地方Set-Cookie : ilc = 22,也即设置了一个cookie,这个cookie值为22,也即post上去的kkk的值,猜测这是此次投票的编码。

可以看到里面有一个关键的地方Set-Cookie : ilc = 22,也即设置了一个cookie,这个cookie值为22,也即post上去的kkk的值,猜测这是此次投票的编码。

从返回的源代码中可以分析出来checkvalue=32这个值并没有写在第二个页面的隐藏域中,那么它就只能记录在session中。从第二次交互的信息中也可以证明。

第二次交互的信息:

发送:

------------------------------------------------------------

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; .NET CLR 1.1.4322)
Host: xxx.xxx.xxx.xxx
Content-Length: 22
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ilc=22

inbtn=%C8%B7%C8%CF

-----------------------------------------------------------------

可以看到第二次post上去的信息仅仅是一个按钮的信息。inbtn为"确认"按钮的名字。而"%C8%B7%C8%CF"就是"确认"两个字的转码。checkvalue=32这个投票信息并不包含在第二次交互中,这只能说明第一次交互中就把这个信息写入到session中保存了。

可以看到第二次post上去的信息仅仅是一个按钮的信息。inbtn为"确认"按钮的名字。而"%C8%B7%C8%CF"就是"确认"两个字的转码。checkvalue=32这个投票信息并不包含在第二次交互中,这只能说明第一次交互中就把这个信息写入到session中保存了。

不能重复投票可能是session中有记录,也可能是cookie中有记录。cookie的可能性大一些。
那么怎么模拟这个过程呢,我用了WebClient类,这个类非常好。其中的Headers属性可以设置头信息。而UploadData函数则可以post数据上去。并且同一个WebClient的两次连接是在同一个Session中的。这样完成两次交互也就是一次投票之后,就可以重新new一个WebClient,这样就相当于重新开了一个Session。

代码如下:
 

static void post()  

string uriString = "http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx"
WebClient myWebClient 
= new WebClient(); 
string postData = null
byte[] byteArray; 
byte[] responseArray; 
WebHeaderCollection myWebHeaderCollection; 
 
postData 
= "checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22"
myWebClient.Headers.Add(
"Content-Type","application/x-www-form-urlencoded"); 
myWebClient.Headers.Add(
"Referer","http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx"); 
myWebClient.Headers.Add(
"Accept-Language","zh-cn"); 
myWebHeaderCollection 
= myWebClient.Headers; 
 
//第一次交互 
Console.WriteLine("发送的HTTP头信息"); 
for (int i=0; i < myWebHeaderCollection.Count; i++)  

Console.WriteLine (myWebHeaderCollection.GetKey(i) 
+ " : " + myWebHeaderCollection.Get(i)); 
}
 
 
byteArray 
= Encoding.Default.GetBytes(postData); 
responseArray 
= myWebClient.UploadData(uriString,"POST",byteArray); 
 
Console.WriteLine(
"接收的HTTP头信息"); 
myWebHeaderCollection 
= myWebClient.ResponseHeaders; 
for (int i=0; i < myWebHeaderCollection.Count; i++)  

Console.WriteLine (myWebHeaderCollection.GetKey(i) 
+ " : " + myWebHeaderCollection.Get(i)); 
}
 
Console.WriteLine(
"接收的正文信息"); 
Console.WriteLine(Encoding.Default.GetString(responseArray)); 
//Console.ReadLine(); 
 
//第二次交互(用同一个WebClient实例) 
postData = "inputinfo=%C8%B7%C8%CF"
myWebClient.Headers.Add(
"Content-Type","application/x-www-form-urlencoded"); 
myWebClient.Headers.Add(
"Referer","http://xxxxx/xxxxxxxxxxxxxxxxxxxxxxxx"); 
myWebClient.Headers.Add(
"Accept-Language","zh-cn"); 
myWebClient.Headers.Add(
"Cookie","ilc=126"); 
myWebHeaderCollection 
= myWebClient.Headers; 
 
Console.WriteLine(
"发送的HTTP头信息"); 
for (int i=0; i < myWebHeaderCollection.Count; i++)  

Console.WriteLine (myWebHeaderCollection.GetKey(i) 
+ " : " + myWebHeaderCollection.Get(i)); 
}
 
 
byteArray 
= Encoding.Default.GetBytes(postData); 
responseArray 
= myWebClient.UploadData(uriString,"POST",byteArray); 
 
Console.WriteLine(
"接收的HTTP头信息"); 
myWebHeaderCollection 
= myWebClient.ResponseHeaders; 
for (int i=0; i < myWebHeaderCollection.Count; i++)  

Console.WriteLine (myWebHeaderCollection.GetKey(i) 
+ " : " + myWebHeaderCollection.Get(i)); 
}
 
 
Console.WriteLine(
"接收的正文信息"); 
Console.WriteLine(Encoding.Default.GetString(responseArray)); 
//Console.ReadLine(); 
}
 

 

运行后输出的信息和手动投票时截获的信息基本一致。

然后就可以运行一个无限循环

 

int i = 0
while (true

try  

post(); 
++
Console.WriteLine(
"这是您投的第" + i + "张票"); 
}
 
catch (Exception e)  

Console.WriteLine(
"有错误发生:" + e.Message); 
}
 
Console.WriteLine(
"---------------------------------"); 
}
 


我做的命令行程序,要捕捉错误避免程序停止。停止程序的时候直接X掉窗口即可。另外用命令行程序的一个好处是不用做多线程,直接多运行几个exe的实例就可以达到多线程的目的(实际是多进程了)。

那么我们在做投票(包括其它表单)如何防备别人自动投票或者自动填写表但呢?session限制的方法显然不是一个有效的方法。而ip限制不实际,因为很多用户都没有ip地址,都是网络运营商作的NAT映射,封掉一个ip地址相当于封掉一批机器。所以一般也不采用。那么如何最有效呢。可以采用两种方法:

1:验证码,验证码直接导致了无法用程序来填写表单,因为验证码都为图片,文字的验证码是没有任何意义的。图片的验证码就决定了,如果要自动,那么必须识别出来验证码的数字和字母。至少一般人是没法做的,这是模式识别的问题。当然我也有朋友专门做模式识别的,可以从复杂背景下辨别出来潦草的手写笔迹,碰上这样的人谁也没办法了。但是像微软有些表单的验证码的图片作的非常复杂。除了背景有很多底纹之外,数字和图片还是花体的,并且角度也不一样,有竖的,有斜的,这样就很难识别。采用了验证码基本可以保证不会被自动投票。

2:ip限时间或票数:限制ip在一段时间内的投票数量或者投两票之间的间隔时间。比如同一ip地址一天内投票数不能超过100张。或者两次投票间隔至少5分钟等。这样即使有自动投票程序,其速度也就大大降低。起不到快速投票的作用。

如果同时结合这两种手段,那么基本很难再做自动投票的事情了。

另外就是上面我所提供的头信息是怎么抓取的,这个在IE上有个插件叫做ieHTTPHeader,您可以从此处
http://www.oceanstudio.net/oceanstudy/download/ieHTTPHeadersSetup.rar
可以方便的看到提交网页时所提交的头信息和post数据。

posted on 2005-02-01 16:05 ocean 阅读(26911) 评论(73)  编辑 收藏

评论

#1楼    回复  引用  查看    

赫赫,前两天我也刚刚做了一个,用来给zol的智能手机投票。。。。
不过我是采用了定时器加上HttpRequest的异步请求方法,这样效率要稍微好一些~~~
2005-02-01 16:13 | twodays      

#2楼    回复  引用  查看    

恩那个插件不错~~~
2005-02-01 16:16 | mikespook      

#3楼    回复  引用    

用HttpRequest也可以,我不用异步主要在于我是console的程序,同时开多个窗口就可以达到多线程的效果。
2005-02-01 16:17 | ocean [未注册用户]

#4楼    回复  引用    

直接抓包,写个Tcpsocket链接80端口,发包...最快
2005-02-01 18:07 | yashika [未注册用户]

#5楼    回复  引用    

请问,是否可以通过asp类似的程序达到上面的效果??盼复!
2005-02-07 01:33 | san [未注册用户]

#6楼    回复  引用    

hehe,那个插件真的不错。有了它实现程序模拟登陆才不太困难,不过我最近用apache提供的java开源项目httpclient实现类似的功能要比用.net 简单多了。
2005-05-05 19:46 | -- [未注册用户]

#7楼    回复  引用    

感觉自己的编程能力真很差 我还是没看明白:http://show.263.net/user_info.jsp?id=181893 我想问下,这个网的刷票的程序怎么编,能告诉我一个现成的吗?谢谢
2005-05-07 00:11 | 无心 [未注册用户]

#8楼    回复  引用    

说的都挺好的
就是好象没有看见大家某个人的真正作品啊

网上现在似乎也没有 啊
2005-05-27 14:17 | 过客 [未注册用户]

#9楼    回复  引用    

请问:这个程序怎么样才能让它运行起来啊?
2005-06-04 20:44 | 吴丹英 [未注册用户]

#10楼    回复  引用    

推荐大家一个非常好的婚礼网站,在线申请注册,发布结婚喜讯,管理自己的个人婚礼网站,做的很漂亮,介绍给大家。
 
婚礼在线  
Http://www.onlove.cn
2005-06-09 23:54 | onlove.cn [未注册用户]

#11楼    回复  引用    

您说的篇程好复杂啊 。
你可以告诉我这个选美网站怎么做一个程序吗?谢谢!盼复
2005-07-02 09:53 | 可人 [未注册用户]

#12楼    回复  引用    

你说呢?
2005-07-02 11:20 | ocean [未注册用户]

#13楼    回复  引用    

hen hao
2005-07-07 16:53 | gao [未注册用户]

#14楼    回复  引用    

写的很好,我对自动填写提交很感兴趣,但是我是
编程新手,问一个比较笨的问题, WebClient类在那种编程环境里有? VC6有吗?
2005-08-17 19:46 | Bing Li [未注册用户]

#15楼    回复  引用    

推荐 《青年漫画》在线阅览哦
http://comic.mday.com.cn

#16楼    回复  引用    

新类型漫画:青年漫画
http://comic.mday.com.cn 这里有在线浏览:)
2005-08-21 16:23 | fever [未注册用户]

#17楼    回复  引用    

你好,能加我吗?36366776.我想请你帮我做个投票的程序,谢谢!
2005-09-06 13:47 | 可乐 [未注册用户]

#18楼    回复  引用    

我没有qq,可以email: ocean@forever.net.cn
2005-09-06 14:30 | ocean [未注册用户]

#19楼    回复  引用    

ocean 您能给我也做一个吗 网址我发到您的邮箱里了
2005-09-09 13:07 | ranbow [未注册用户]

#20楼    回复  引用  查看    

晕,文章是好文章,怎么跟贴了这么多广告呀
ocean,我这里有个需求,正用你这个东西呢,就搜索到你的帖子了,呵呵,正好看看。
目标:
通过下面的网址写一个桌面程序,模拟在线的搜索,也可以选择关键字,省,市,然后点击搜索把结果直接生成一个本地txt文档,并提供打印功能。
http://www.yellowpage.com.cn/
分析:
通过.NET框架里的WebClient类向指定网页发送http请求,并获取返回的数据,利用正则表达式或者HtmlDOM来分析并把搜索结果填充到一个文本流里,并可以保存成一个文本文件,或者直接把文本流显示在一个RichTextBox里进行预览和打印。
难点问题:
1. 模拟填写关键字,选择下拉列表,以及提交表单的动作。
2. 结果是多页的时候如何获取最大的页数,以及遍历所有页并合并搜索结果
3. 用正则分析搜索结果的时候,怎么唯一定位每一条搜索结果,匹配表达式一定要以严谨
解决方案:
1. 这一条我不会解决
2. 搜索出来有个搜索结果的显示条数,然后这个结果条数除以每页显示的条数就可以计算出可以翻几页了,然后向每页发送一个http请求并合并结果
3. 我看了他的源码,搜索结果是用两个注释保卫着,先用正则匹配每页的搜索结果显示区域,然后在区域里根据公司名链接上的CSS唯一匹配公司名,然后根据电话是数字和下划线的特性以及包含在一对TD标签里的特性找出对应的公司地址和电话
非功能需求:
1. 要求界面友好,操作方便,在进行抓取页面的时候能看到进度,不会有假死情况
2. 代码工整,可读性强,结构好,面向对象
2005-09-10 12:01 | WAWACRM      

#21楼    回复  引用    

我想问个问题,要是新浪网的那种比赛投票有人能能力连续投票吗?


QQ:25104983 (联系我,急)

#22楼    回复  引用    

今天也在写一个自动投票程序,验证码好不容易搞定了,竟然说我非法地址
2005-11-03 14:06 | 恍然小悟 [未注册用户]

#23楼    回复  引用    

为什么按照你的做法不成功呢?
2005-11-23 16:44 | 蓝火王 [未注册用户]

#24楼    回复  引用    

帮帮忙啊!!!!!
我截取到的信息是这样的:
POST /bbs/bbs/bbs/1/4/index.php?prog=poll::vote&tid=62238 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.amoney.com.cn/cms.php?prog=show&tid=62238&csort=23
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)
Host: www.amoney.com.cn
Content-Length: 148
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: oldusertime=1132730404

vote%5B%5D=512&vote%5B%5D=513&vote%5B%5D=514&vote%5B%5D=515&vote%5B%5D=516&vote%5B%5D=517&newUrl=%2Fcms.php%3Fprog%3Dshow%26tid%3D62238%26csort%3D23


HTTP/1.1 200 OK
Date: Wed, 23 Nov 2005 07:21:56 GMT
Server: Apache/2.0.52 (Unix) PHP/4.3.10
X-Powered-By: PHP/4.3.10
Set-Cookie: oldusertime=1132730516; expires=Wed, 23-Nov-2005 08:21:56 GMT
Content-Encoding: gzip
Content-Length: 526
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=GB2312

我按照你的方法就是不可以呀???

请大大帮助!!!!
2005-11-23 16:46 | 蓝火王 [未注册用户]

#25楼    回复  引用    

我想求一个投票的东东,具体要求我已经发到你的信箱。请查收。谢谢¥·#¥%
2005-11-26 11:42 | bb0113 [未注册用户]

#26楼    回复  引用    

高手呀。
2005-12-07 10:41 | 游戏攻略 [未注册用户]

#27楼    回复  引用    

如果是同一个Ip地址限制次数那?
2005-12-21 10:29 | nsnboy [未注册用户]

#28楼    回复  引用    

你好
我也尝试了一下,可是我没完全明白。结果没有出来。
我也是帮朋友投票。
方便的话可不可以教我下。
生后快乐

我的qq 83412792
email zhaowuhonglou1982@gmail.com
2006-01-08 13:16 | 王志旺 [未注册用户]

#29楼    回复  引用    

通过
2006-01-08 19:53 | 人几 [未注册用户]

#30楼    回复  引用    

各个
2006-01-08 20:25 | 人几 [未注册用户]

#31楼    回复  引用    

前两天我也刚刚做了一个,用来给zol的智能手机投票。。。。
不过我是采用了定时器加上HttpRequest的异步请求方法,这样效率要稍微好一些~~~
2006-01-08 20:27 | 人几 [未注册用户]

#32楼    回复  引用    

今天也在写一个自动投票程序,验证码好不容易搞定了,竟然说我非法地址
2006-01-08 20:28 | 人几 [未注册用户]

#33楼    回复  引用    

通过
2006-01-08 20:29 | 人几 [未注册用户]

#34楼    回复  引用    

ocean大哥,我已经往你的邮箱发了一封求救信~真的很希望得到你的帮助!
2006-02-01 01:19 | 乙醚 [未注册用户]

#35楼    回复  引用    

对于ASP.NET开发的WEB系统,ieHTTPHeader无法获取POST的数据,我想可能是因为IE将HTTP请求分成了两个包发送,POST的数据打包在了第二个包中,特此请教。
2006-03-10 16:01 | Saber [未注册用户]

#36楼    回复  引用    

还有一个问题请教:在POST的数据中特殊字符应是经过编码的,我看不是URLEncoding,不知是何,请指教。
2006-03-10 16:04 | Saber [未注册用户]

#37楼    回复  引用  查看    

投票怎么弄?
2006-03-23 21:29 | 徐灿钊Asp.net专栏      

#38楼    回复  引用    

顶!
2006-03-23 22:53 | 顶 [未注册用户]

#39楼    回复  引用    

提交时不提交SESSION不行呀
2006-04-14 19:27 | 11nong [未注册用户]

#40楼    回复  引用    

请大家帮忙,我这个是有IP限制的,需要加个代理服务器的选择

下面是我截取的数据:


aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.83 tcp 4277端口->80端口 ?000aebe91f66->aaaaa5656550 ip 61.135.150.83->192.168.1.4 tcp 80端口->4277端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.83 tcp 4277端口->80端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.83 tcp 4277端口->80端口 POST /minisite/site627/register.jsp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*
Referer: http://minisite.it.sohu.com/minisite/site627/poll.jsp?corpID=627&status=browse&privCode=04&pollID=35867&who=picture&randID=6b47c5d4717611a7425">http://minisite.it.sohu.com/minisite/site627/poll.jsp?corpID=627&status=browse&privCode=04&pollID=35867&who=picture&randID=6b47c5d4717611a7425
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: minisite.it.sohu.com
Content-Length: 64
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: SUV=0604172203251150; IPLOC=CN4400; JSESSIONID=aCbSKO8zINL6

USER_NAME=%D5%C5%BC%D1&MOBILE=13620908185&corpID=627&privCode=02000aebe91f66->aaaaa5656550 ip 61.135.150.83->192.168.1.4 tcp 80端口->4277端口 000aebe91f66->aaaaa5656550 ip 61.135.150.83->192.168.1.4 tcp 80端口->4277端口 HTTP/1.1 200 OK
Date: Tue, 18 Apr 2006 11:47:37 GMT
Server: Apache/1.3.27 (Unix) Resin/2.1.8
Cache-Control: private
Content-Length: 463
Connection: close
Content-Type: text/html





<SCRIPT LANGUAGE="JavaScript" SRC="calendar.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="FormCheck.js"></SCRIPT>


您已经提交过了!谢谢参与!

<script language="JavaScript" src="http://nielsen.js.sohu.com/nnselect.js">
</script>
<script language="JavaScript">
alert("谢谢您的参与!");
window.close();
</script>
<noscript>
<img src='http://ping.nnselect.com/ping.gif?c=119' height='1' width='1'>
</noscript>
000aebe91f66->aaaaa5656550 ip 61.135.150.83->192.168.1.4 tcp 80端口->4277端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.83 tcp 4277端口->80端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.83 tcp 4277端口->80端口 000aebe91f66->aaaaa5656550 ip 61.135.150.83->192.168.1.4 tcp 80端口->4277端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.211 tcp 4278端口->80端口 ?000aebe91f66->aaaaa5656550 ip 61.135.150.211->192.168.1.4 tcp 80端口->4278端口 ?aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.211 tcp 4278端口->80端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.211 tcp 4278端口->80端口 GET /pv.gif?t?=1145360857625799?r?=http://minisite.it.sohu.com/minisite/site627/poll.jsp?corpID=627&status=browse&privCode=04&pollID=35867&who=picture&randID=6b47c5d4717611a7425">http://minisite.it.sohu.com/minisite/site627/poll.jsp?corpID=627&status=browse&privCode=04&pollID=35867&who=picture&randID=6b47c5d4717611a7425 HTTP/1.1
Accept: */*
Referer: http://minisite.it.sohu.com/minisite/site627/register.jsp
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: pv.sohu.com
Connection: Keep-Alive
Cookie: SUV=0604172203251150; IPLOC=CN4400
2006-04-18 21:05 | 高彩艳 [未注册用户]

#41楼    回复  引用    


000aebe91f66->aaaaa5656550 ip 61.135.150.211->192.168.1.4 tcp 80端口->4278端口 000aebe91f66->aaaaa5656550 ip 61.135.150.211->192.168.1.4 tcp 80端口->4278端口 HTTP/1.1 200 OK
Date: Tue, 18 Apr 2006 11:47:39 GMT
Server: Apache/2.2.0 (Unix)
P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
set-cookie: IPLOC=CN4400;expires=Wed, 18-Apr-2007 11:47:39 GMT;path=/;domain=.sohu.com
Last-Modified: Tue, 15 Nov 2005 02:30:16 GMT
ETag: "239c43-0-5e387e00"
Accept-Ranges: bytes
Content-Length: 0
Connection: close
Content-Type: image/gif

000aebe91f66->aaaaa5656550 ip 61.135.150.211->192.168.1.4 tcp 80端口->4278端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.211 tcp 4278端口->80端口 aaaaa5656550->000aebe91f66 ip 192.168.1.4->61.135.150.211 tcp 4278端口->80端口 000aebe91f66->aaaaa5656550 ip 61.135.150.211->192.168.1.4 tcp 80端口->4278端口

#42楼    回复  引用    

请老大试验一下,后面是调用JSP的,会不会这个原因无法通过?
----------------------------------------------------------------------------------------------------
http://www.zjol.com.cn/05zjnews/system/2006/03/15/006517205.shtml
----------------------------------------------------------------------------------------------------

2006-04-20 20:41 | samking [未注册用户]

#43楼    回复  引用    

POST /post.jsp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.zjol.com.cn/05zjnews/system/2006/03/15/006517205.shtml
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)
Host: vote.zjol.com.cn
Content-Length: 68
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: vote=0; vote338=voted; JSESSIONID=uQCXU7IlL0bADRq3

1_10=10&id=338&text_338_1_33=&text_338_1_34=&submit1=+%CC%E1+%BD%BB+

HTTP/1.1 200 OK
Date: Thu, 20 Apr 2006 12:37:59 GMT
Server: Apache/2.0.53 (FreeBSD) PHP/4.3.10 Resin/3.0.12
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=gb2312
Content-Language: zh-CN

GET /result.jsp?id=338 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)
Host: vote.zjol.com.cn
Connection: Keep-Alive
Cookie: vote=0; vote338=voted; JSESSIONID=uQCXU7IlL0bADRq3

HTTP/1.1 200 OK
Date: Thu, 20 Apr 2006 12:38:01 GMT
Server: Apache/2.0.53 (FreeBSD) PHP/4.3.10 Resin/3.0.12
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=GB2312
Content-Language: zh-CN

GET /images/0.gif HTTP/1.1
Accept: */*
Referer: http://vote.zjol.com.cn/result.jsp?id=338">http://vote.zjol.com.cn/result.jsp?id=338
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
If-Modified-Since: Thu, 16 Oct 2003 09:14:46 GMT
If-None-Match: "9d1117-33-4f96ed80"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)
Host: vote.zjol.com.cn
Connection: Keep-Alive
Cookie: vote=0; vote338=voted; JSESSIONID=uQCXU7IlL0bADRq3


HTTP/1.1 304 Not Modified
Date: Thu, 20 Apr 2006 12:38:01 GMT
Server: Apache/2.0.53 (FreeBSD) PHP/4.3.10 Resin/3.0.12
Connection: close
ETag: "9d1117-33-4f96ed80"

GET /scripts/aads.dll?Launch&766|1&sz95&投票系统&refer=&cur=http%3A//vote.zjol.com.cn/result.jsp%3Fid%3D338&title= HTTP/1.1
Accept: */*
Referer: http://vote.zjol.com.cn/result.jsp?id=338">http://vote.zjol.com.cn/result.jsp?id=338
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)
Host: tracking.zjonline.com.cn
Connection: Keep-Alive


2006-04-20 20:43 | samking [未注册用户]

#44楼    回复  引用    

ocean大哥,多谢了!谢谢你这么无私的把自己做的东西奉贤出来,太棒了,以后多多关照啊,呵呵

#45楼    回复  引用  查看    

能给源码给我看一下吗?
声明:只是自己学习,绝对不会传播
xucanzhao [at] gmail.com
谢谢了。
2006-05-11 10:24 | 徐灿钊Asp.net专栏      

#46楼    回复  引用    

小儿科.
关键的问题一个都没有解决.一出现验证码你就没办法了.一出现限IP也同样没办法了...
2006-05-17 23:08 | jass [未注册用户]

#47楼    回复  引用    

edrtyert
2006-06-04 08:21 | asdfa [未注册用户]

#48楼    回复  引用    

这位大哥好,请求一个自动投票程序。谢谢!邮箱是
lifee007@yahoo.com.cn
2006-06-24 11:44 | 蓝本一 [未注册用户]

#49楼    回复  引用    

谢谢ocean,你的这个工具帮了我大忙
2006-06-27 03:27 | layooks [未注册用户]

#50楼    回复  引用    

我现在很着急,我在参加一个比赛,如何才能更快得增票
我的电话:13933503424
QQ:28556725
2006-08-12 12:27 | WANGXIANSHANG [未注册用户]

#51楼    回复  引用    

请问老大我用IEHTTPHEADER获取一个网站的

发现它所Post的数据为:NAME=XXX&PASS=YYYY&x=17&y=9

而后面的X,和Y每次都不一样,并且返回的HTML源代码中没有,请问如何获取X,Y的值

#52楼    回复  引用    

请教楼主,这是什么语言实现的?C#?
谢谢!指点一下!!
2006-11-30 01:57 | macleo [未注册用户]

#53楼    回复  引用    

谢谢,楼主!
是C#代码哦!
^_^,使用WebClient,编译通过!不过,还是达不到投票的效果!

http://hiphotos.baidu.com/macleo/pic/item/2ed62987c511202bc65cc303.jpg

现在需要考虑的是如何更换IP的问题了!


2006-12-04 00:15 | macleo [未注册用户]

#54楼    回复  引用  查看    

感谢,楼主提示!
我的投票机也完工了!
吼吼,高高兴兴给涛MM,投票去喽!^_^!
2006-12-05 09:24 | macleo      

#55楼    回复  引用    

哪为高手帮我开发一个自动投票软件嘛 要求在http://fish.cc786.com/mm/show.asp?id=38上 急用
2007-01-09 17:57 | khshdsjhs [未注册用户]

#56楼    回复  引用    

教我编也可以
2007-01-09 17:59 | khshdsjhs [未注册用户]

#57楼    回复  引用    

不错,不过每次投票都要做一次,够麻烦的

这种东西没法做通用的
2007-01-10 23:41 | ohr [未注册用户]

#58楼    回复  引用    

有没有源码吗?我还不是很清楚呀,
2007-03-25 22:28 | 蔡先生 [未注册用户]

#59楼    回复  引用    

http://www.tp2008.c http://www.tp2008.com/投票软件网提供:自动投票软件,免费投票软件,投票软件下载,自动投票机,自动投票器,自动投票工具,网络投票机,网上,免费,软件,下载



联系人:tp2008
联系方式:http://www.tp2008.com/
联系地址:http://www.tp2008.com/om/投票软件网
2007-05-07 00:52 | 杉叶 [未注册用户]

#60楼    回复  引用    

我们希望你可以加入我们,我们需要你,我们的QQ 359594 注明 合作
2007-06-05 09:59 | 雯雯 [未注册用户]

#61楼    回复  引用  查看    

大哥,谢谢你的慷慨,我自己写了一个投票程序,用asp.net写的
抓的包如下所示,怎么分析呀,最后那一段怎么分析呀!谢谢了
POST /Default.aspx HTTP/1.1
Accept: */*
Referer: http://192.168.0.3:83/Default.aspx
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: 192.168.0.3:83
Content-Length: 415
Connection: Keep-Alive
Cache-Control: no-cache

__VIEWSTATE=%2FwEPDwUJOTQwMTc4NTI5D2QWAgIDD2QWCAIBDw8WAh4EVGV4dAUBNWRkAgMPDxYCHwAFATRkZAIFDw8WAh8ABQE0ZGQCBw8PFgIfAAUBMmRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYHBQRyZGIxBQRyZGIyBQRyZGIyBQRyZGIzBQRyZGIzBQRyZGI0BQRyZGI0boyF%2BXyyR%2F59pckDcDNj14TAx60%3D&a=rdb1&btnSubmit=%E7%A1%AE%E5%AE%9A&__EVENTVALIDATION=%2FwEWBwKP%2B5g2ArGop7MPArGo0%2B8HArGoz8gOArGo%2B6UFAsKL2t4DApD0z%2BsFs1OOi6NVbUQw4kRhtbGaClXr1ZQ%3D
2007-08-08 17:23 | 任力      

#62楼    回复  引用    

公司让我现在做一个抓取网页字符串,然后在比较,在向网页填写一些内容.我试着写了一个程序,用httprequest类写的,但我的我网页地址是比如说http://203.241.135.2:8000/index.html,手动访问的时候每次要输入用户和密码,但我该类没有相关属性,并且我看webclient类也没有相关属性以及方法,请问我该如何处理?
我的e-mail:jack_he@joytech.com.cn
2007-09-06 14:09 | jack [未注册用户]

#63楼    回复  引用    

楼主及诸位大虾:
我们公司要做一个东西,就是能记录每次登录时候的用户名和密码,这样的功能该如何实现?
2007-09-07 08:38 | happy worm [未注册用户]

#64楼    回复  引用    

请教一下各位大虾级,一般的传奇私服怎么样可以复制装备?
2007-11-21 16:07 | 大威 [未注册用户]

#65楼    回复  引用  查看    

好文章,学习了
2007-11-27 11:19 | ithurricane      

#66楼    回复  引用    

我这里有个朋友提供的投票,是慧聪网开发的,限制IP的,研究了很久,没法实现自动投票的,不只是用什么技术作的,
连接地址如下:
http://vms.info.hc360.com/vms/app/template/stage,vote,template1_2.html?signUpId=1869&topicId=54

希望研究结果分享
2007-12-14 17:51 | szfabia [未注册用户]

#67楼    回复  引用    

我电脑不行啊,网上找的软件又不行,怎么办啊!请大虾帮助
有验证码的,很长的数字。可以直接进入投票页面。能把具体的设置过程写出来吗?
2007-12-19 21:18 | 小边 [未注册用户]

#68楼    回复  引用    

呵呵,网上有通用网络自动投票器,免费的,可以到www.outdovote.cn下载。
2008-01-11 21:49 | 炙天使 [未注册用户]

#69楼    回复  引用