标题: VBS监控网络流量
作者: Demon
链接: https://demon.tw/copy-paste/vbs-network.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
VBS监控网络流量,对于晚上挂迅雷等,可能有点用处。
On Error Resume Next Dim ObjectWSH, ObjectWMI, TempFlow Const FlowCount = 10240 '单位流量,10KB,10240字节 Const TimeCount = 30000 '单位时间,30秒,30000毫秒 '这里根据实际情况修改 TempFlow = 0 Set ObjectWSH = CreateObject("Wscript.Shell") Set ObjectWMI = Getobject("Winmgmts:\\.\") Set NetCards = ObjectWMI.ExecQuery("Select * from Win32_PerfRawData_Tcpip_NetworkInterface") If NetCards.count<>0 Then For Each NetCard In NetCards If (NetCard.BytesReceivedPersec > TempFlow) Then TempFlow = NetCard.BytesReceivedPersec NetCardName = NetCard.Name End If Next WScript.Echo "Name: " & NetCardName Else Wscript.Echo "Not found the specified network device ..." WScript.Quit(0) End If '获取用于上网的网卡信息(最大流量的网卡) Do WScript.Echo "" WScript.Sleep 1000 '这个延时貌似是必须的? CurrentFlow BeginFlow = CurrentFlow Wscript.Echo Now & ", Flow: " & BeginFlow & " Bytes" '获取开始时接收的流量(字节) WScript.Sleep TimeCount '定义时间范围 CurrentFlow EndFlow = CurrentFlow Wscript.Echo Now & ", Flow: " & EndFlow & " Bytes" '获取结束时接收的流量(字节) Result = EndFlow-BeginFlow If (Result < FlowCount) Then '10240即10KB,当30秒(上面的时间范围)内流量小于10KB就关闭系统 WScript.Echo "Shutdown ..." ObjectWSH.Run "shutdown.exe -s -t 0", 0, TRUE WScript.Quit(0) End If '计算结果并比较 Loop WScript.Quit(0) Function CurrentFlow() Set ObjectFlows = ObjectWMI.InstancesOf("Win32_PerfRawData_Tcpip_NetworkInterface") For Each ObjectFlow In ObjectFlows If ObjectFlow.Name=NetCardName Then CurrentFlow = ObjectFlow.BytesReceivedPersec End If Next End Function
原文链接:http://www.enun.net/?p=147
赞赏微信赞赏支付宝赞赏
随机文章: