. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』 » 专题:命令正则

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#1 旧 2005-06-23, 16:08:36 默认 【原创】网上自动投票的cmd脚本思路
hitme 当前离线  

述求:
这个网站限制了一个ip只能投票一次, 哪位高手能解开这个限制?
http://www.jxwm.gov.cn/huodong/wmdw/

进入网站后,请选择“A27、上饶供电公司”投上您宝贵的一票。
详情请看这一贴 http://bbs.et8.net/bbs/showthread.php?t=667875

=================================================
先观察下这个站点,一些checkbox,需要填写验证码
ie试投一下,连接到http://www.jxwm.gov.cn/huodong/wmdw/wmdwtp.php进行验证
第二次试投,提示每ip只能投一次,可能是在服务端记录验证的,先不去管它

自动脚本投票的思路:
1.利用curl模拟浏览器动作进行投票
2.利用变更代理服务器或反复拨号上下线对付每ip投票限制

开工:
1.看了下投票页http://www.jxwm.gov.cn/huodong/wmdw/index.php的html源码
似乎只需post wmdw[]=27&wmdwcode=1698即可,curl -d "wmdw[]=27&wmdwcode=1698" http://xxxx.xxx 反复试了半天,无果。
看来有暗桩,游戏结束? 不,顶住,坚持就是胜利

2.想起来httplook,赶紧拿出来,监视投票动作,马上有了结果,软件真好
代码:
POST /huodong/wmdw/wmdwtp.php 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.jxwm.gov.cn/huodong/wmdw/
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; .NET CLR 1.1.4322)
Host: www.jxwm.gov.cn
Content-Length: 64
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: wmdwloginnumber=1698; xjdwloginnumber=5448

wmdwoperator=1&wmdw%5B%5D=27&wmdwcode=1698&submit.x=5&submit.y=11
注意以下几项,本例中referer,user-agent未做验证,暂时略过(这个也是测试得知,花的就是时间)
代码:
Referer: http://www.jxwm.gov.cn/huodong/wmdw/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cookie: wmdwloginnumber=1698; xjdwloginnumber=5448

wmdwoperator=1&wmdw%5B%5D=27&wmdwcode=1698&submit.x=5&submit.y=11
submit.x=5&submit.y=11是鼠标点击提交按钮时的坐标,好像没用,不要它了
集中注意力在cookie和post内容上
代码:
Cookie: wmdwloginnumber=1698
wmdwoperator=1&wmdw%5B%5D=27&wmdwcode=1698
乖乖,有个wmdwoprator=1验证条目,就是它,害我折腾了老半天.
google出三言两语现学php,信息真够乱的,我也不是天才,所获等于00000,呼,我的时间就是多,浪费不怕


3.对curl简单做下说明
curl -b 提交cookie
curl -d post表单
curl -A User-Agent
curl -e Referer
curl -x proxy
学习教程在这里http://bbs.et8.net/bbs/showthread.php?t=568472
老服是个宝,我反复学习了好几遍了,hoho

4.组织编写cmd,疯狂测试中

思路如下:
抓index.php,提取两个验证码
if 是第一个验证码 then
提交curl -b cookie -d post form http://...wmdwtp.php

代码:
curl http://jxwm.jxgdw.com/huodong/wmdw/index.php |findstr /n "请输入\<" >tmp.txt
for /f "tokens=1,5 delims=:<>" %%i in (tmp.txt) do (
			if "%%i"=="349" (
			curl -b "wmdwloginnumber=%%i" -d "wmdwoperator=1&wmdw[]=27&wmdwcode=%%i" http://jxwm.jxgdw.com/huodong/wmdw/wmdwtp.php)
)
特别提醒:在for .. do () 段落中%5B%5D不能被正确解析,会被解析为参数%5 B ,翻译回[],哈哈,我真聪明
在这里浪费了不少测试时间,测试是个体力活,直到你感到迷茫,都不一定能成功..要坚持

5.收拾得差不多了,该对付每ip一投限制了
没啥好折,换代理?平时也不太找.没准备
拨号线路,频繁上下线好了,赫赫,土人土办法

上下线部分
代码:
:loop
rasphone -d "ADSL"
curl 投票
rasphone -h "ADSL"
goto :loop
代理部分
代码:
 
for /f %%i in (代理列表) do (
curl -x %%i 投票
大致如此,啥也不懂的时候,要想干点事,还真难
哎,业余选手唯有坚持,费时间才能有所得
由于脚本没有通用性,纯交流下思路,就不贴了

此帖于 2005-06-23 16:27:57 被 hitme 编辑. .
andy
 
andy 的头像
超级会员
 
资 料:
注册日期: Oct 2003
帖子: 1,653 声望值: 4
精华: 3
#2 旧 2005-06-23, 16:21:59 默认
andy 当前离线  

不愧是老大! 非常好的思路 等我将它用到上网交作业那里试试 


 Quit the race  give me space  `Coz I'm so tired of being a slave


qq24434008@163.com
smallfrogs
 
smallfrogs 的头像
核心会员
 
资 料:
注册日期: Oct 2001
帖子: 3,898 声望值: 2
精华: 20,解答: 3
#3 旧 2005-06-23, 16:22:37 默认
smallfrogs 当前离线  

for..................

以后称hitme为forer吧


Everything is possible. Nothing is impossible.
KZTechs.COM, Reloaded
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#4 旧 2005-06-23, 16:51:04 默认
hitme 当前离线  

引用:
作者: smallfrogs
for..................

以后称hitme为forer吧
好啊
不给加个尊号么?比如 bigforer
smallfrogs bigforer,哈哈哈哈,神秘的

此帖于 2005-06-23 17:00:27 被 hitme 编辑. .
lwj
 
lwj 的头像
中级会员
 
资 料:
注册日期: Jun 2000
帖子: 347 声望值: 2
精华: 0
#5 旧 2005-06-23, 17:27:03 默认
lwj 当前离线  

太好了, 现在票数在快速上升
Ymir
 
Ymir 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 4,465 声望值: 3
精华: 0,解答: 1
#6 旧 2005-06-23, 18:19:16 默认
Ymir 当前离线  

牛,真厉害。

btw:能否用cmd脚本把http://result.lottery.gov.cn/qxc/qxcpl305166.js

脚本里的全部摇奖结果: 7 3 6 8 9抓出来,发送到一个指定的url里?

btw:qxcpl305166.js里的305***每天自动加一的。
romano
 
romano 的头像
超级会员
 
资 料:
注册日期: Aug 2002
帖子: 1,334 声望值: 3
精华: 0,解答: 6
#7 旧 2005-06-23, 19:01:21 默认
romano 当前离线  

贴一个前几天写的python代码,比较凌乱, 可以用代理的(用kanbol的哪个抓代理的工具抓了一些代理), 把代理保存为 11.22.33.44:55格式,一行一个,存为同目录的proxy.txt就可以了。
不过不太能理解的是, 为啥用文字来验证, 不用图片的呢...
PHP 代码:
# -*- coding: cp936 -*-


from urllib import urlencode
import socket
import cookielib
urllib2httplib
import threading
time




total 
8
good 
8


def toupiao
(proxy):
  global 
total
  
global good
  timeout 
10
  socket
.setdefaulttimeouttimeout)

  print 
proxy
  cj 
cookielib.LWPCookieJar()
  
proxy_support urllib2.ProxyHandler({"http":proxy})
  
opener urllib2.build_opener(urllib2.HTTPCookieProcessor(cj),proxy_support)
  
urllib2.install_opener(opener)
  
  
  
opener.addheaders = [
          (
"User-agent""Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3"),
          (
"Accept""text/html, image/jpeg, image/png, text/*, image/*, */*")]
  try:
        
    
firstPage opener.open(r'http://jxwm.jxgdw.com/huodong/wmdw/')
    
codelist firstPage.readlines()
    if 
len(codelist)>348:
        
codeline codelist[348]

        
code int(codeline[codeline.find('<b>') + 3:codeline.find('</b>')])
        print 
'验证码为' str(code)
        
        
socket.setdefaulttimeouttimeout)    
        
        
data = {"wmdwoperator":1,"wmdw[]":"27",'wmdwcode'code}
        
urldata urlencode(data)
        
secPage opener.open(r'http://jxwm.jxgdw.com/huodong/wmdw/wmdwtp.php'urldata)
        
#secPage = urllib2.urlopen(r'http://jxwm.jxgdw.com/huodong/wmdw/wmdwtp.php', urldata)
        
total += 1
        
if secPage.read().find('感谢您的投票')!= -1:
          
good +=1
        
print '投票'+str(total)+'次,\t有效投票'+str(good)+'次'  
        
print '-'*22+'*'*22+'-'*22
    
  except urllib2
.HTTPErrore:
    print 
'-'*22+'*'*22+'-'*22
  except urllib2
.URLErrore:
    print 
'-'*22+'*'*22+'-'*22
  except httplib
.BadStatusLinee:
    print 
'-'*22+'*'*22+'-'*22
    

class mythread(threading.Thread):
    
def __init__(selfthreadname):
        
threading.Thread.__init__(selfname threadname)
    
def run(self):
      
proxy str(self.getName)
      
proxy proxy[proxy.find('http://'):proxy.find(',')]
      
toupiao(proxy)
      
time.sleep(1
if 
__name__ == "__main__":
  for 
line in file('proxy.txt'):
    
line 'http://' line.strip()
    
mythread1 mythread(line)
    
mythread1.start() 
zjsheng
 
zjsheng 的头像
超级会员
 
资 料:
注册日期: Mar 2002
帖子: 1,974 声望值: 3
精华: 1,解答: 1
#8 旧 2005-06-23, 19:38:24 默认
zjsheng 当前离线  

呵!厉害!

帮看看能不能搞定这个网站:http://www.zxxk.com/forum/Get.asp?UserID=126016

该网站可以通过宣传赚取点数,每IP在一定时间内点击一次进入网站可以获得1点。同一IP地址多次点击不计。

我想作弊,每次断线换IP重新点击,连Cookies都清除了,但总是不能生效!谁帮看看有什么办法?
smallkim
 
smallkim 的头像
热心会员
 
资 料:
注册日期: Jun 2005
帖子: 3,411 声望值: 2
精华: 5,解答: 3
#9 旧 2005-06-23, 20:02:15 默认
smallkim 当前离线  

牛X 这样也可以...
526400
 
526400 的头像
游客
 
资 料:
注册日期: Dec 2000
帖子: 2,039 声望值: 3
精华: 0
#10 旧 2005-06-23, 22:07:11 默认
526400 当前离线  

订阅了,以后再慢慢看,很有用的东西,说不准哪天会用上,哈哈
hjy2000
 
hjy2000 的头像
热心会员
 
资 料:
注册日期: Jul 2002
帖子: 7,157 声望值: 6
精华: 0,解答: 2
#11 旧 2005-06-23, 23:10:53 默认
hjy2000 当前离线  

强,学习ing


泡在CCF的日子.............
出来混,总是要还的。
只有在你闭上眼的时候,你才会看见你最想看的东西---地下铁
garconcn
 
garconcn 的头像
支柱会员
 
资 料:
注册日期: Sep 2002
帖子: 6,514 声望值: 6
精华: 0,解答: 1
#12 旧 2005-06-23, 23:10:54 默认
garconcn 当前离线  

拜师来了。。
Ganz
 
Ganz 的头像
超级会员
 
资 料:
注册日期: Feb 2002
帖子: 1,748 声望值: 3
精华: 0
#13 旧 2005-06-24, 08:47:13 默认
Ganz 当前离线  

没必要重新去读取验证码.

只要发送出去的数据中,wmdwloginnumber=wmdwcode就行.


!!!!!永远的柑子园!!!!!
Ganz
 
Ganz 的头像
超级会员
 
资 料:
注册日期: Feb 2002
帖子: 1,748 声望值: 3
精华: 0
#14 旧 2005-06-24, 08:58:38 默认
Ganz 当前离线  

引用:
作者: romano
贴一个前几天写的python代码,比较凌乱, 可以用代理的(用kanbol的哪个抓代理的工具抓了一些代理), 把代理保存为 11.22.33.44:55格式,一行一个,存为同目录的proxy.txt就可以了。
不过不太能理解的是, 为啥用文字来验证, 不用图片的呢...
PHP 代码:
# -*- coding: cp936 -*-


from urllib import urlencode
import socket
import cookielib
urllib2httplib
import threading
time




total 
8
good 
8


def toupiao
(proxy):
  global 
total
  
global good
  timeout 
10
  socket
.setdefaulttimeouttimeout)

  print 
proxy
  cj 
cookielib.LWPCookieJar()
  
proxy_support urllib2.ProxyHandler({"http":proxy})
  
opener urllib2.build_opener(urllib2.HTTPCookieProcessor(cj),proxy_support)
  
urllib2.install_opener(opener)
  
  
  
opener.addheaders = [
          (
"User-agent""Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3"),
          (
"Accept""text/html, image/jpeg, image/png, text/*, image/*, */*")]
  try:
        
    
firstPage opener.open(r'http://jxwm.jxgdw.com/huodong/wmdw/')
    
codelist firstPage.readlines()
    if 
len(codelist)>348:
        
codeline codelist[348]

        
code int(codeline[codeline.find('<b>') + 3:codeline.find('</b>')])
        print 
'验证码为' str(code)
        
        
socket.setdefaulttimeouttimeout)    
        
        
data = {"wmdwoperator":1,"wmdw[]":"27",'wmdwcode'code}
        
urldata urlencode(data)
        
secPage opener.open(r'http://jxwm.jxgdw.com/huodong/wmdw/wmdwtp.php'urldata)
        
#secPage = urllib2.urlopen(r'http://jxwm.jxgdw.com/huodong/wmdw/wmdwtp.php', urldata)
        
total += 1
        
if secPage.read().find('感谢您的投票')!= -1:
          
good +=1
        
print '投票'+str(total)+'次,\t有效投票'+str(good)+'次'  
        
print '-'*22+'*'*22+'-'*22
    
  except urllib2
.HTTPErrore:
    print 
'-'*22+'*'*22+'-'*22
  except urllib2
.URLErrore:
    print 
'-'*22+'*'*22+'-'*22
  except httplib
.BadStatusLinee:
    print 
'-'*22+'*'*22+'-'*22
    

class mythread(threading.Thread):
    
def __init__(selfthreadname):
        
threading.Thread.__init__(selfname threadname)
    
def run(self):
      
proxy str(self.getName)
      
proxy proxy[proxy.find('http://'):proxy.find(',')]
      
toupiao(proxy)
      
time.sleep(1
if 
__name__ == "__main__":
  for 
line in file('proxy.txt'):
    
line 'http://' line.strip()
    
mythread1 mythread(line)
    
mythread1.start() 
用数字的验证码,应该就是允许投票机的运作.

否则,投票数太少,领导很没面子
jiuk2k
 
jiuk2k 的头像
待认证激活
 
资 料:
注册日期: Mar 2002
帖子: 3,177 声望值: 2
精华: 5
#15 旧 2005-06-24, 10:54:58 默认
jiuk2k 当前离线  

强,收藏备用


NearbyFeed基于地点的社交网络iPhone和Android应用程序,欢迎到App Store和Android Market下载使用nearbyfeed.com
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 03:50:36.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号