On Sat, Jan 26, 2013 at 10:22 AM, Dave Taht wrote: > Once upon a time it was possible to write quick and dirty tools in shell. > You used to just be able to open a port, write a tiny little daemon, and > go. And we used to have handy tools like rwho and finger to figure out who > was online, ruptime to check uptime, etc, etc. > > That's too insecure nowadays... > so we have 3 different levels of snmp which you can use (if you can secure > it), and > run a shell command from that, remotely, then parse... or use ssh, and > parse. > > And then we have dhcp, which hands out leases, but is not tied to how wifi > goes up > and down. > > This morning I had a need to figure who was actually on a couple cerowrt > APs, > and a few statistics as to their connected rate... > > I haven't got so as figuring out how to do all that via snmpd yet, but as > this uses > an obscure feature of the mac802.11 stack, I thought I'd document this > much. > > If there is a better way, a mib, something, let me know.... > > #!/bin/sh > # rup: quickly see whos really on the wifi > > A=`ls /sys/kernel/debug/ieee80211/phy*/netdev:*/stations | \ > cut -f8 -d/ | tr '\n' '|'` > # cut off last | > egrep ${A%?} /tmp/dhcp.leases | awk '{print $3 " " $4 }' > > > Or, you can just stick it into /etc/xinetd.d/rup service rup { disable = no socket_type = stream wait = no user = nobody only_from = my_ipv4_ip/32 my_ipv6_ip/64 port = 79 type = UNLISTED server = /etc/rup flags = IPv6 log_on_success += HOST USERID log_on_failure += HOST USERID instances = 4 } nc 172.20.2.2 79 | awk '{print $1}' | fping -c 2 -q and be done with it. 172.20.3.210 : xmt/rcv/%loss = 2/2/0%, min/avg/max = 6.64/187/368 172.20.3.99 : xmt/rcv/%loss = 2/0/100% 172.20.3.180 : xmt/rcv/%loss = 2/0/100% 172.20.3.141 : xmt/rcv/%loss = 2/2/0%, min/avg/max = 75.1/77.9/80.7 172.20.3.212 : xmt/rcv/%loss = 2/0/100% 172.20.3.128 : xmt/rcv/%loss = 2/2/0%, min/avg/max = 23.9/122/222 172.20.3.229 : xmt/rcv/%loss = 2/0/100% 172.20.3.172 : xmt/rcv/%loss = 2/0/100% 172.20.3.34 : xmt/rcv/%loss = 2/0/100% 172.20.3.102 : xmt/rcv/%loss = 2/2/0%, min/avg/max = 0.07/0.08/0.09 172.20.3.146 : xmt/rcv/%loss = 2/0/100% and to gather remote rate stats: #!/bin/sh # Gather connected speeds and minstrel error rates from remote wifi for i in /sys/kernel/debug/ieee80211/phy*/netdev:*/stations/* do RATE=`grep PMCS "$i/rc_stats"` STATION=`echo $i | cut -f9 -d/` [ -z "$STATION" ] && exit B=`grep ${STATION} /tmp/dhcp.leases 2> /dev/null | awk '{print $3}'` echo "$B $RATE" done # and I suppose this will blow up in ipv6... > > -- > Dave Täht > > Fixing bufferbloat with cerowrt: > http://www.teklibre.com/cerowrt/subscribe.html -- Dave Täht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html