`

用VBScript帮朋友写的一个用以内网投票的程序

阅读更多

      近日应朋友请求,用VBScript写了一个投票小程序,有些东西平时没用过还真不知道,为防止遗忘,就在Blog里记一下,好记性不如烂笔头嘛。

Function randNum()
  result = -1
  For ii=0 To 10
    While (result<1 or result>3)
      result = round(( Rnd() * 30 / 10 ))
    WEnd
  Next
  randNum = result
End Function

Function RndNumber(min, max)
  Randomize()
  result = -1
  While (result<min Or result>max)
    result = Int( Rnd() * (max - min + 1) ) + min 
  Wend
  RndNumber = result
End Function

Function ChangeIP(ip, netMask)
  '设置IP 
  'strIPAddress=Array("192.168.1.43")
  strIPAddress=Array(ip)

  '设置子网掩码 
  strSubnetMask=Array(netMask) 

  '设置网关 
  'DefaultIPGateway=Array("192.168.1.1") 

  '设置跃点数 
  'GatewayCostMetric=Array("1") 

  '设置DNS服务器 
  'DNSServer = Array("61.139.44.38", "61.139.2.69") 

  strComputer="."     '本机
  Set objWMIService=GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
  Set colNetAdapters=objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") 

  For Each objNetAdapter in colNetAdapters 
    '设置IP和子网掩码
    errEnable=objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    '设置网关和跃点数
    'errEnable=objNetAdapter.SetGateways(DefaultIPGateway,GatewayCostMetric)
    '设置DNS 
    'errEnable=objNetAdapter.SetDNSServerSearchOrder(DNSServer)
  Next
  ChangeIP = true
End Function

Function makeQuery
  Dim str

  str = ""
  For ii=1 To 10
    str = str & ii & "=" 
    If ii=4 Then 
      str = str & "11"
    Else 
      str = str & (randNum() + (ii - 1) * 3)
    End If
    If ii<10 Then str = str & "&"
  Next
  str = str & "&sss.x=150&sss.y=35"
  makeQuery = str
End Function
'MsgBox makeQuery

Dim xmlhttp

Function SendRequest(url, queryString)
  'define vars
  
  'url = "http://sheng.iteye.com"
  'MsgBox "URL = " & url & "?" & queryString
  txtfile.WriteLine( queryString )
  'Exit Function 

  'make request
  xmlhttp.open "POST", url, False
  xmlhttp.setRequestHeader "Content-length", Len(queryString)
  xmlhttp.setRequestHeader "Accept","image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*"
  xmlhttp.setRequestHeader "Referer","http://X.X.X.X/fjltpoll/poll_intro.asp"
  xmlhttp.setRequestHeader "Accept-Language","zh-cn"
  xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
  xmlhttp.setRequestHeader "Accept-Encoding","gzip, deflate"
  xmlhttp.setRequestHeader "User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)"
  xmlhttp.setRequestHeader "Host","X.X.X.X"
  xmlhttp.setRequestHeader "Connection","Keep-Alive"
  xmlhttp.setRequestHeader "Cache-Control","no-cache"
  xmlhttp.setRequestHeader "Cookie","ASPSESSIONIDAQADASTQ=PJNHMBADPFKJBHDNBJGELLEL"
  xmlhttp.setRequestHeader "Content-Type","text/html;charset=GB2312"
  xmlhttp.send queryString
  'wait for response
  xmlhttp.waitForResponse()
  'if status is 200, then it's OK
  if xmlhttp.status = 200 then
    'WScript.Echo xmlhttp.responseText
    txtfile.WriteLine( Bytes2BSTR(xmlhttp.responseBody ))
  else
    'popup bad response, or just omit to end
    'WScript.Echo("bad response")
    txtfile.WriteLine( "bad response" )
  end if
  'destroy objects. I'm not sure this is necessary

  'Set xmlhttp = Nothing
End Function

Dim url
url = "http://X.X.X.X/fjltpoll/vote.asp"

Dim logFile, fso, txtfile
logFile = "C:\vote_log.txt"

Function Bytes2BSTR( vIn )   
  Dim strReturn   
  strReturn = ""   
    
  For i =1 To LenB(vIn)   
    ThisCharCode = AscB(MidB(vIn,i,1))   
    If ThisCharCode < &H80 Then   
      strReturn = strReturn & Chr(ThisCharCode)   
    Else
      NextCharCode = AscB(MidB(vIn,i+1,1))   
      strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
      i = i + 1   
    End If
  Next   
  Bytes2BSTR   =   strReturn   
End Function 

Sub InitObject
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set txtfile = fso.OpenTextFile(logFile, 2, True)
  Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
End Sub

Sub ReleaseObject
  txtfile.close
  Set txtfile = Nothing
  Set fso     = Nothing
  Set xmlhttp = Nothing
End Sub

Function Vote()
  Dim subIPs, sleepTime
  MsgBox "开始"
  InitObject

  subIPs = Split(IPs, ",")
  For ii=0 To UBound(subIPs)
    IP = IPprefix & subIPs(ii)                                        '生成IP
    sleepTime = RndNumber(sleepTimeMin, sleepTimeMax) * 1000          '生成间隔时间
    txtfile.WriteLine( "IP=" & IP & ", SleepTime=" & sleepTime & " ms")  '记录日志

    ChangeIP IP, netMask
    qStr = makeQuery()
    SendRequest url, qStr
    WScript.sleep( sleepTime )
  Next
  ReleaseObject
  MsgBox "结束"
End Function





'==*************************************************==
'   下面的参数可以更改 
'==-------------------------------------------------==

Dim IPprefix, fromIP, toIP, netMask, IPs
Dim sleepTimeMin, sleepTimeMax       '最小/最大间隔时间(以秒计)
IPprefix = "X.X.32."              'IP前半部分
'fromIP   = 1                        '开始的IP地址
'toIP     = 5                        '结束的IP地址
IPs = "1,3,2,5,4"                    'IP序列
netMask  = "255.255.248.0"           '子网掩码

sleepTimeMin = 10
sleepTimeMax = 60

'开始
Vote()

 

分享到:
评论

相关推荐

    用VBSCRIPT发邮件

    标题中的“用VBSCRIPT发邮件”指的是使用Visual Basic Script(VBScript)编写脚本来发送电子邮件。VBScript是一种轻量级的脚本语言,常用于Windows系统中的自动化任务和网页交互。在邮件发送的场景中,它能够通过与...

    vbscript 整人小程序

    vbscript 整人小程序 输入指定信息,才能关闭窗口

    使用VBScript编写的时间程序

    用vbscript编写一个程序在html语言中,实现简单的多窗口操作

    VBScript写的代码统计器

    标题中的“VBScript写的代码统计器”指的是一个使用VBScript编程语言编写的工具,它的主要功能是统计代码行数,尤其是针对Java代码。VBScript,全称Visual Basic Script,是微软公司开发的一种轻量级、解释型的脚本...

    用VBSCRIPT制作IE按钮

    - 虽然VBScript主要与Internet Explorer兼容,但随着现代浏览器倾向于使用更标准化的JavaScript,VBScript的使用逐渐减少。如果你需要在其他非IE浏览器中实现类似功能,应考虑使用JavaScript或jQuery等库。 6. **...

    VBScript

    总的来说,VBScript是Web开发历史上的一个重要组成部分,它提供了一种简单的方式来创建动态网页和实现客户端脚本功能。虽然现代开发趋势可能更多地倾向于JavaScript和其他更现代的技术,但VBScript的历史地位和其在...

    asp投票程序(特别实用)

    这个"asp投票程序"是一个基于ASP技术构建的在线投票系统,它为用户提供了一个简单而实用的方式来收集和统计用户的投票数据。在描述中提到,这个程序非常实用且简单,适合那些希望快速实现在线投票功能的网站管理员。...

    asp简单投票,投票程序。

    这个"asp简单投票,投票程序"是基于ASP技术实现的一个小型投票系统,适用于初学者了解ASP编程和Web交互功能的基础应用。 该投票程序可能包含以下关键知识点: 1. **ASP基本语法**:ASP文件通常以.asp为扩展名,内含...

    ASP无刷新投票程序

    总的来说,ASP无刷新投票程序是一个结合了ASP后端处理、前端AJAX技术、以及Session管理的互动应用,旨在提供高效、安全的投票功能。理解并研究这个程序,可以帮助开发者深入学习Web开发中的交互设计、状态管理以及...

    用ASP和VBScript实现在线打字

    在线打字系统基于ASP和VBScript,旨在创建一个用户可以实时输入、练习打字技能的平台。源码分析可以帮助我们理解如何将这两者结合以实现这样的功能。 【知识点】: 1. ASP基础: - ASP是基于HTTP的服务器端脚本...

    vbscript实例

    6. **VBS取QQ-TM号码的自动登录命令行.vbs**:这可能是一个实用工具,利用VBScript实现自动登录QQ或TM,减少了手动操作的步骤,适合于需要频繁登录的场景。 7. **exe2swf工具.vbs**:此脚本可能用于将可执行文件...

    调用使用VBScript的子程序源代码.zip

    你提到的压缩包`调用使用VBScript的子程序源代码.rar`可能包含了一个或多个这样的VBScript文件(`.vbs`扩展名),这些文件可能包含了一些实用的子程序示例,供学习或应用。解压并打开这些文件,你可以看到实际的...

    投票调查程序.zip

    【投票调查程序.zip】是一个包含一系列文件的压缩包,主要用于创建和管理在线投票调查。这个程序可能由ASP(Active Server Pages)技术构建,这是一种在Web服务器上运行的脚本语言,用于动态生成网页内容。从文件...

    VBScript可视化程序设计-清华出版.pdf

    VBScript可视化程序设计-清华出版.pdf

    VBScript编译器

    VBScript(Visual Basic Script Edition)是一种轻量级的脚本语言,主要应用于Windows环境,尤其在Web开发中用于客户端的动态交互。VBScript编译器是用于将VBScript代码转换成可执行形式的工具,使得VBScript代码...

    ASP VB 网络投票系统

    总的来说,ASP VB网络投票系统是初学者学习Web开发和数据库管理的一个很好的实践项目,同时也为小型网站提供了一种快速实现投票功能的方法。通过这个项目,开发者可以深化对服务器端编程、数据库操作和Web交互的理解...

    WEB开发 之 VBScript 程序.docx

    调用函数程序时,你可以将返回值赋给一个变量,或者直接在表达式中使用: ```vbscript Dim result result = myfunction(10, 20) ' 将返回值赋给变量result msgbox "结果是:" & myfunction(5, 7) ' 直接使用函数...

    Asp网上同学录,其中用VBscript编写,脚本为Javascript

    【Asp网上同学录】是一个基于ASP(Active Server Pages)技术构建的在线校友通讯平台,主要采用VBScript作为服务器端编程语言,同时结合JavaScript作为客户端脚本语言来增强交互体验。这个项目旨在提供一个安全、...

    ASP源码—自定义投票程序 简易版.zip

    【ASP源码—自定义投票程序 简易版.zip】是一个包含ASP(Active Server Pages)编程语言编写的简易投票程序的压缩包。这个程序旨在为网站提供一个基础的、可自定义的投票功能,允许用户参与并收集反馈。虽然标签中...

    VBScript语言参考.chm

    即使您没有学过 Visual Basic,只要学会 VBScript,就能够使用所有的 Visual Basic 语言进行程序设计。虽然您可以从本教程的几个 Web 页面中学习 VBscript,但是本教程并没有告诉您如何编程。要学习编程,请阅读由 ...

Global site tag (gtag.js) - Google Analytics