* router in your LAN
* DD-WRT software on your router
** If you don't have it, I recommend it. Check their database, maybe you can already use it. If you like their software and you want to buy a cheap wifi router with DD-WRT support, then TP-Link TL-WR740N could be bought a new one for less than 15 EUR. Maybe there's something cheaper right now, I don't have a clue.
* disabled "Info Site Password Protection" setting (default)
* optional: wi-fi (to get more precious data)
Result
Actual and accurate data about your network. Sometimes more precise than getting data from Windows with much better refresh rate. You can use data of other machines in your LAN.
What kind of data? Most things from attached picture. To check all available data in poorly readable form data see the file we will be getting data from. Some router could have more informations. I guess that routers based on Broadcom chipset will have more.
The idea
I needed to get data about both Rx and Tx rate and current signal quality, but with better refresh rate than Windows offers. Also it turns out that Windows data is not accurate.
As DD-WRT router offers unprotected status page, I wanted to fetch HTML and get data from there. It turned out you can't simply fetch HTML. It's even better. There's something JSON alike. The example JSON-alike file is here.
That page is located on http://192.168.0.1/Info.live.htm, where 192.168.0.1 is your router IP.
Example of use
I needed Tx Rate, Rx rate and quality of signal displayed in percents. Take note that my regular expression isn't good, but if you don't know how to use them, you can use mine, of course.
It's not copyrighted (too trivial to call it "work" in copyright law definition), but if you want license, then it's CC-BY 4.0/MIT (not compatibile with CC-NC-SA, see spoiler on the top to see why).
Code: Select all
[MeasureWifi]
Measure=Plugin
Plugin=WebParser
UpdateRate=5
URL=http://192.168.0.1/Info.live.htm
RegExp=(?siU)'XX:XX:XX:XX:XX:XX','ath0','.*','(.*)M','(.*)M','.*','.*','.*','.*','(.*)[0-9]'
[MeasureTX]
Measure=Plugin
Plugin=WebParser
URL=[MeasureWifi]
StringIndex=1
[MeasureRX]
Measure=Plugin
Plugin=WebParser
URL=[MeasureWifi]
StringIndex=2
[MeasureQuality]
Measure=Plugin
Plugin=WebParser
URL=[MeasureWifi]
StringIndex=3
* XX:XX:XX:XX:XX:XX to your (or machine you want to get data from) Mac number
* ath0 to interface name (you will find it in Status page in Clients section)
* 192.168.0.1 to your router IP