So in the network monitoring tool Networx there is an option to have it monitor the WANCommonInterface of the UPNP to pull network statistics directly from the router and not your local machine.
Does anyone know if there would be a similar option to allow this in Rainmeter?
Here is information on the UPNP interface I'm talking about:
http://upnp.org/specs/gw/UPnP-gw-WANCommonInterfaceConfig-v1-Service.pdf
It is currently April 25th, 2024, 6:36 am
Router Traffic
-
- Posts: 1
- Joined: April 10th, 2015, 9:25 pm
-
- Posts: 16
- Joined: March 2nd, 2013, 5:56 pm
Re: Router Traffic
Something like this, perhaps?
With upnp_getinfo.vbs as follows:
Code: Select all
[Rainmeter]
Update=1000
AccurateText=1
....................................................................................................................................................
[Variables]
CurrTime=0
....................................................................................................................................................
[MeasureDownload]
Measure=NetIn
Interface=0
MaxValue=1840000
AverageSize=4
[MeasureUpload]
Measure=NetOut
Interface=0
MaxValue=720000
AverageSize=4
[MeasureUsage]
Measure=NetTotal
Interface=0
Cumulative=1
[MeasureTimer]
Measure=Uptime
OnUpdateAction=[!SetVariable LastTime #CurrTime#][!SetVariable CurrTime [MeasureTimer:]][!CommandMeasure MeasureRouter Run]
UpdateDivider=5
DynamicVariables=1
[MeasureRouter]
Measure=Plugin
Plugin=Plugin\RunCommand.dll
Parameter=C:\Windows\System32\cscript.exe /nologo C:\Root\upnp_getinfo.vbs
OutputType=ANSI
FinishAction=[!UpdateMeasure "MeasureBytesReceived"][!UpdateMeasure "MeasureBytesSent"]
DynamicVariables=1
UpdateDivider=-1
[MeasureTimePassed]
Measure=Calc
Formula=(#CurrTime# - #LastTime#)
DynamicVariables=1
[MeasureBytesReceived]
Measure=String
String=[MeasureRouter]
DynamicVariables=1
RegExpSubstitute=1
Substitute="(?siU).*<NewTotalBytesReceived>(\d*)<\/NewTotalBytesReceived>.*$":"\1"
OnUpdateAction=[!SetVariable PrevRec #CurrRec#][!SetVariable CurrRec [MeasureBytesReceived]]
UpdateDivider=-1
[MeasureBytesSent]
Measure=String
String=[MeasureRouter]
DynamicVariables=1
RegExpSubstitute=1
Substitute="(?siU).*<NewTotalBytesSent>(\d*)<\/NewTotalBytesSent>.*$":"\1"
OnUpdateAction=[!SetVariable PrevSent #CurrSent#][!SetVariable CurrSent [MeasureBytesSent]]
UpdateDivider=-1
[MeasureRouterRec]
Measure=Calc
Formula=(#CurrRec# - #PrevRec#) / [MeasureTimePassed]
MaxValue=230000
DynamicVariables=1
[MeasureRouterSent]
Measure=Calc
Formula=(#CurrSent# - #PrevSent#) / [MeasureTimePassed]
MaxValue=88000
DynamicVariables=1
Code: Select all
On Error Resume Next
host = "192.168.10.1"
If host <> False Then
Set http = Nothing
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest.5")
If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest")
If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP")
If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP")
If http Is Nothing Then
MsgBox "No HTML Object",16,"Error"
Else
body = "<?xml version=""1.0"" encoding=""utf-8""?>" _
& "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"" s:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"">" _
& "<s:Body><u:GetAddonInfos xmlns:u=""urn:schemas-upnp-org:service:WANIPConnection:1"" /></s:Body></s:Envelope>"
url = "igdupnp/control/WANCommonIFC1"
With http
.Open "POST", "http://" & host & ":49000/" & url,false
.setRequestHeader "Content-Type", "text/xml; charset=""utf-8"""
.setRequestHeader "Connection", "close"
.setRequestHeader "Content-Length", Len(body)
.setRequestHeader "HOST", host & ":49000"
.setRequestHeader "SOAPACTION", """urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#GetAddonInfos"""
.Send body
End With
WScript.Echo http.responseText
WScript.Quit
End If
End If