vb实现XMLHTTP

这篇博客展示了如何使用VB和XMLHTTP对象实现对路由器的连接、断开以及重启操作。通过设置Authorization头进行身份验证,并利用WScript.Shell发送键盘事件模拟登录路由器的过程。此外,还提供了DOS命令重启路由器的脚本。
Private Sub Command_Click()
    Set xmlobject = CreateObject("Microsoft.XMLHTTP") ‘创建XMLHTTP对象
    URL = "http://127.0.0.1" ‘请求的服务器地址
    xmlobject.Open "GET", URL, False ‘向服务请求数据
     xmlobject.Send  '向服务器发送数据
    If xmlobject.ReadyState = 4 Then
        Text1.Text = xmlobject.Responsetext ‘服务器返回的数据
    End If
End Sub
下面的是转载:
说明下:
"YWRtaW46YWRtaW4=" 是base64编码过的,解码后是admin:admin

Private Sub disconnect()'断开网络
    Dim xmlHTTP1
    Dim jieguo As String
    Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
    xmlHTTP1.Open "get", "http://192.168.1.1/userRpm/StatusRpm.htm?Disconnect=%B6%CF+%CF%DF", False
    xmlHTTP1.setRequestHeader "Authorization", "YWRtaW46YWRtaW4="
    xmlHTTP1.Send
    While xmlHTTP1.ReadyState <> 4
        DoEvents
    Wend
    Set ObjXML = Nothing
End Sub

Private Sub connect()'连接网络
    Dim xmlHTTP1
    Dim jieguo As String
    Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
    xmlHTTP1.Open "get", "http://192.168.1.1/userRpm/StatusRpm.htm?Connect=%C1%AC+%BD%D3", False
    xmlHTTP1.setRequestHeader "Authorization", "YWRtaW46YWRtaW4="
    xmlHTTP1.Send
    While xmlHTTP1.ReadyState <> 4
        DoEvents
    Wend
    Set ObjXML = Nothing
End Sub
' 请根据路由器实际界面和实际设置更改以下 5 处有注解的数值或字符串值, 此代码以 TL-WR340G 无线路由器为设计依据.
PosSysTools = 20        ' 焦点到 "系统工具" 所需按 Tab 键的次数
PosReboot = 23           ' "系统工具" 展开后, 焦点到 "重启系统" 所需按 Tab 键的次数
PosRebootBtnShift = 9   ' "重启系统" 展开后, 焦点到 "重启系统" 按钮 所需按 Shift+Tab 键的次数
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "IEXPLORE.EXE http://192.168.1.1/" ' TP-LINK 的默认登录地址为 192.168.1.1, 此处应该无需更改
Delay  100
WshShell.AppActivate "连接到 192.168.1.1"
Delay  100
WshShell.SendKeys "%(u)"
Delay  500
WshShell.SendKeys "admin" ' 双引号中是用户名, 这里取的是 TP-LINK 的默认设置 admin, 请根据实际情况更改
Delay  500
WshShell.SendKeys "%(p)"
Delay  500
WshShell.SendKeys "admin" ' 双引号中是密码, 这里取的是 TP-LINK 的默认设置 admin, 请根据实际情况更改
Delay  500
WshShell.SendKeys "~"
Delay  500
WshShell.SendKeys "{ESC}"
Delay  500
For I = 1 To PosSysTools
  WshShell.SendKeys "{TAB}"
  Delay  100
Next
WshShell.SendKeys "~"
Delay  100
For I = 1 To PosReboot
  WshShell.SendKeys "{TAB}"
  Delay 100
Next
WshShell.SendKeys "~"
Delay  3000
For I = 1 To PosRebootBtnShift
  WshShell.SendKeys "+({TAB})"
  Delay  100
Next
WshShell.SendKeys "~"
Delay  200
WshShell.SendKeys "~"

本人自测 按键8 IE8.0 路由器型号 TP-Link R402

dos命令重启路由器脚本

重启路由命令="telnet 192.168.1.1 80"& vbcrlf&"GET /userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7 HTTP/1.1"& vbcrlf&"Host:192.168.1.1"& vbcrlf&"Authorization:Basic YWRtaW46YWRtaW4="

RunApp "cmd.exe"
Delay 1000
Hwnd = Plugin.Window.Find("ConsoleWindowClass", 0)
Delay 100
If Hwnd = 0 Then 
MsgBox "DOS命令窗口没打开"
EndScript 
End If
Call Plugin.Sys.SetCLB(重启路由命令)
Delay 100
Call Plugin.Bkgnd.RightClick(Hwnd, 10, 10)
Delay 100
Call Plugin.Bkgnd.KeyPress(Hwnd, 80)
Delay 100
Call Plugin.Memory.TerminateProc(Hwnd)
Delay 100
EndScript
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值