新浪投票不靠谱啊,连验证码都没有,一个人半天能刷好几百。
刷分利器 = 随机IP(ADSL路由+Chrome控制台JS断网重连) + 自动投票(IE+VBS)。
原理:
1. 新浪投票的重复检测机制:依靠判定投票者网络的外网IP在一定时间内是否多次投票来实现。(其实也不算弱,ADSL拨号还有时间呢,一分钟也就能投几票而已)
2. 由 1 可知,使用随机IP即可实现多次投票。
步骤:
1. 让IP自动随机。 (使用 ADSL路由 + Chrome控制台JS断网重连)
2. 让投票自动化。 (使用VBS + IE )
实现:
硬件坏境:ADSL猫 x1、路由器 x1、电脑 x1。
软件环境:windows xp(或win7)、默认浏览器IE、Chrome浏览器、杀毒软件请放行要执行的VBS脚本。
IP自动随机(没有ADSL宽带的可以不看,效率会低上好几倍)
以腾达某路由器为例:打开Chrome浏览器,打开路由器的网络设置,转到WLAN口设置页面,获取ADSL断开连接的按钮ID(在按钮上右键选“审查元素”)。
切换到 Console 选项卡,输入自动刷新IP的JS代码。
以下代码供参考: | | | var LastIP = document.getElementById("wan1_ip").innerHTML; | | var ChangeNow = true; | | | | | | function check_ip() { | | var NowIP = document.getElementById("wan1_ip").innerHTML; | | console.log("LastIP: %s, NowIP: %s, ChangeNow: %s,DateTime: %s", LastIP, NowIP, ChangeNow, now()); | | if ((NowIP == "0.0.0.0") || (NowIP == "")) { | | ChangeNow = false; | | return 0; | | } | | if ((LastIP == NowIP) && (ChangeNow == true)) { | | change_ip(); | | } else { | | LastIP = NowIP; | | ChangeNow = false; | | } | | } | | | | | | function change_ip() { | | if (ChangeNow == true) { | | console.log(" --- > ChangeNow: %s, DateTime: %s", ChangeNow, now()); | | ChangeNow = false; | | sub_status_change('WAN1'); | | }; | | } | | | | | | function now() | | { | | var now = new Date(); | | var year = now.getFullYear(); | | var month = now.getMonth() + 1; | | var day = now.getDate(); | | var hh = now.getHours(); | | var mm = now.getMinutes(); | | var ss = now.getSeconds(); | | var ms = now.getMilliseconds(); | | var clock = year + "-"; | | month < 10 ? clock += "0" : clock += month + "-"; | | day < 10 ? clock += "0" : clock += day + " "; | | hh < 10 ? clock += "0" : clock += hh + ":"; | | mm < 10 ? clock += '0' : clock += mm + ":"; | | ss < 10 ? clock += '0' : clock += ss + "."; | | clock += ms; | | return(clock); | | } | | | | | | var timer1 = window.setInterval("check_ip()", 500); | | var timer2 = window.setInterval("ChangeNow=true;",25*1000); | | | | | | | | COPY |
·
·
·
投票自动化
使用VBS来实现投票功能,具体步骤为:
1. VBS打开投票页面网址
2. 找到投票人,并选中
3. 自动点击投票按钮
4. 完成
以下代码供参考: | Do | | TouPiao | | CreateObject("WScript.Shell").Run "cmd /c taskkill /f /im iexplore.exe", 0, True | | Loop | | | | Sub TouPiao() | | | | On Error Resume next | | Do While Ping("www.sina.com") = False | | WScript.Sleep 200 | | Loop | | | | Set ie = CreateObject("internetexplorer.application") | | URL = "http://xxx.xxx.sina.com.cn/survey.php?id=xxx" | | | | With ie | | | | .RegisterAsDropTarget = False | | | | .Visible = True : .Navigate(URL) | | End With | | | | With ie | | .width = 600 : .height = 200 | | .left = .document.parentWindow.screen.width \ 2 - 300 | | .top = .document.parentWindow.screen.height\ 2 - 200 | | | | REM nVersion = CSng(replace(split(_ | | REM .document.parentWindow.navigator.appVersion, " ")(3)_ | | REM , ";", "")) | | REM if nVersion < 7.0 Then .FullScreen = True | | End With | | | | WScript.Sleep 2000 | | | | Do While ie.ReadyState <> 4 | | If Not Ping("www.sina.com") = True Then Exit Sub | | If Not LCase(ie.document.location.href) = LCase(URL) Then Exit Sub | | If Not Err.Number = 0 Then Exit Sub | | WScript.Sleep 2*100 | | Loop | | | | | | | | | | Set Items = ie.document.getElementsByTagName("input") | | For Each Item in Items | | If Item.name = "投票者单选框名称" And Item.value = "投票者ID" Then | | Item.focus() | | Item.Click | | rem Item.Click | | | | WScript.Sleep 1*1000 | | Exit For | | End if | | Next | | | | ie.document.getElementById("JS_Survey_Submit").Click | | WScript.Sleep 3*1000 | | | | ie.Quit | | | | End Sub | | | | | | | | | | | | Function Ping(ByVal sHost) | | Ping = False : If sHost = "" Then Exit Function | | On Error Resume Next | | Dim objWMIService, colItems, colItem, Reply_StatusCode, Reply_bytes, Reply_time, Reply_TTL | | Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") | | Set colItems = objWMIService.ExecQuery("Select * from Win32_PingStatus " & "Where Address = '" & sHost & "'",,48) | | For Each objItem in colItems | | Reply_StatusCode = objItem.StatusCode | | Reply_bytes = objItem.ReplySize | | Reply_time = objItem.ResponseTime | | Reply_TTL = objItem.ResponseTimeToLive | | If Reply_StatusCode = 0 Then Ping = True : Exit For | | Next | | Set colItems = Nothing | | Set objWMIService = Nothing | | End FunctionCOPY |
注:
此程序必须经专业人士自行修改后才能使用,本人不对他人使用该程序做的任何事负责。 |