jablonka.czprosek.czf

wifimon

Subversion Repositories:
[/] [trunk/] [wifimon] - Blame information for rev 29

 

Line No. Rev Author Line
12simandl#!/bin/bash
23simandl# authors : Petr Simandl www.simandl.cz
322simandl# : Fyzik, Covex, Tydyt, Thunder.m
429simandl# release date : 06/04/2006
52simandl# name : wifimon
621simandl# description : hostap and madwifi powered card monitoring
72simandl# license : GPL
821simandl######################################################################
92simandl 
1029simandlwl_version="0.5.7pre4"
1111simandl 
1221simandl######################################################################
13#custom settings
14 
1529simandlPATH=$PATH:$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
1613simandl 
1728simandlwl_wlancf=`which wlanconfig`
1814simandlwl_iwccmd=`which iwconfig`
1921simandlwl_iwlcmd=`which iwlist`
2014simandlwl_ifccmd=`which ifconfig`
21wl_hnmcmd=`which hostname`
22wl_awkcmd=`which awk`
23 
24wl_tptcmde=""
25wl_clrcmde=""
26 
2719simandlwl_sysdev="/proc/sys/dev/"
2814simandlwl_hostap="/proc/net/hostap/"
2927simandlwl_madwifi="/proc/net/madwifi/"
3014simandlwl_wireless="/proc/net/wireless"
31wl_arp="/proc/net/arp"
32wl_dhcpcnf="/etc/dhcpd.conf"
33wl_dhcplss="/var/lib/dhcp/dhcpd.leases"
3417simandl# wl_dhcpcnf="/etc/dhcp3/dhcpd.conf"
35# wl_dhcplss="/var/lib/dhcp3/dhcpd.leases"
3614simandl 
3721simandlwl_header_refresh="<html><head><meta HTTP-EQUIV=\"Refresh\" CONTENT=\"15\"><title>Wifimon @ `$wl_hnmcmd`</title></head><body BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"><pre>"
38wl_header="<html><head><title>Wifimon @ `$wl_hnmcmd`</title></head><body BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"><pre>"
39wl_footer="</pre></body></html>"
4014simandl 
4121simandlwlm_no_managed_or_master=" neni ani Master ani Managed..."
42wlm_number_of_clients="Pocet asociovanych klientu : "
43wlm_unknown="Nezname parametry nebo neplatne jmeno rozhrani : "
44#wlm_no_managed_or_master=" is not Master or Managed..."
45#wlm_number_of_clients="Number of associated clients : "
46 
47wlch_signal="="
48wlch_noise="*"
49 
50######################################################################
51#testing basic setings
52 
5312simandlif [ "$wl_iwccmd x" = " x" ]
54 then
55 echo "iwconfig not found"
56 exit 1
57fi
582simandl 
5921simandlif [ "$wl_iwlcmd x" = " x" ]
60 then
61 echo "iwlist not found"
62 exit 1
63fi
64 
6514simandlif [ "$wl_ifccmd x" = " x" ]
66 then
67 echo "ifconfig not found"
68 exit 1
69fi
704simandl 
7114simandlif [ "$wl_hnmcmd x" = " x" ]
72 then
73 echo "hostname not found"
74 exit 1
75fi
76 
77if [ "$wl_awkcmd x" = " x" ]
78 then
79 echo "awk not found"
80 exit 1
81fi
82 
83if [ -e $wl_wireless ]
84 then
85 wl_nop=1
86 else
87 echo "$wl_wireless not found"
88 exit 1
89fi
90 
91if [ -e $wl_arp ]
92 then
93 wl_nop=1
94 else
95 echo "$wl_arp not found"
96 exit 1
97fi
98 
9922simandl#dhcp support
100#if not found trying to set alternative location
101if [ ! -f $wl_dhcpcnf ]; then
102 wl_dhcpcnf="/etc/dhcp3/dhcpd.conf"
103fi
104 
105if [ ! -f $wl_dhcplss ]; then
106 wl_dhcplss="/var/lib/dhcp3/dhcpd.leases"
107fi
108 
109#if not found a message is printed and /dev/null is used instead
11014simandlif [ -e $wl_dhcpcnf ]
111 then
112 wl_nop=1
113 else
114 echo "$wl_dhcpcnf not found"
115 wl_dhcpcnf="/dev/null"
116fi
117 
118if [ -e $wl_dhcplss ]
119 then
120 wl_nop=1
121 else
122 echo "$wl_dhcplss not found"
123 wl_dhcplss="/dev/null"
124fi
12521simandl######################################################################
12614simandl 
12724simandlif [ -d ${wl_hostap}wlan0 ]
12821simandl then
129 wlf_hostap=1
130 else
131# echo "${wl_hostap}wlan0 not found"
132 wlf_hostap=0
133fi
1347simandl 
13527simandlif [ -d ${wl_sysdev}ath ]
13621simandl then
137 wlf_madwifi=1
138 else
139# echo "${wl_sysdev}ath0 not found"
140 wlf_madwifi=0
141fi
1427simandl 
14329simandlwlf_wlancf=1
144if [ "$wl_wlancf x" = " x" ]
145 then
146 wlf_wlancf=0
147# echo "wlanconfig not found"
148# exit 1
149fi
150 
15121simandlif [ "$wlf_hostap" -eq 0 ] && [ "$wlf_madwifi" -eq 0 ]
152 then
15324simandl echo "${wl_hostap}wlan0 not found"
154 echo "${wl_sysdev}ath0 not found"
15521simandl exit 1
156fi
15711simandl 
15829simandl 
1592simandl######################################################################
16021simandl# procedures
161######################################################################
16211simandlw_col()
16310simandl{
16415simandlwlc_red=`tput setaf 1` # ruda (Red)
165wlc_green=`tput setaf 2` # zelena (Lime)
166wlc_brown=`tput setaf 3` # zluta (Yellow)
167wlc_blue=`tput setaf 4` # modra (Blue)
168wlc_magenta=`tput setaf 5` # fialova (Fuchsia)
169wlc_lblue=`tput setaf 6` # svetle modra (Aqua)
170wlc_grey=`tput setaf 7` # bila (White)
17111simandlwlc_std=`tput sgr0`
172 
17315simandlwlc_pkts=$wlc_red # Rx,Tx info color
17411simandlwlc_ip=$wlc_lblue # ip address color
175wlc_mac=$wlc_magenta # mac address color
17615simandlwlc_name=$wlc_magenta # host name color
17711simandlwlc_sig=$wlc_red # signal number color
178wlc_bar=$wlc_green # signal bar color
17915simandlwlc_noise=$wlc_red # Signal noise color
18010simandl}
181######################################################################
18215simandlw_colh()
183{
184 wlh_pkts="Olive" # signal number color html
185 wlh_ip="Blue" # ip address color html
186 wlh_mac="Fuchsia" # mac address color html
187 wlh_name="Fuchsia" # Host name color html
188 wlh_sig="Red" # signal number color html
189 wlh_bar="Lime" # signal bar color html
190 wlh_noise="Red" # Signal noise color html
191 
192 wlc_pkts="<font color=\"$wlh_pkts\">"
193 wlc_ip="<font color=\"$wlh_ip\">"
194 wlc_mac="<font color=\"$wlh_mac\">"
195 wlc_name="<font color=\"$wlh_name\">"
196 wlc_sig="<font color=\"$wlh_sig\">"
197 wlc_bar="<font color=\"$wlh_bar\">"
198 wlc_noise="<font color=\"$wlh_noise\">"
199 wlc_std="</font>"
200}
201######################################################################
2024simandlw_bw()
203{
20415simandl wlc_pkts=""
2056simandl wlc_ip=""
206 wlc_mac=""
207 wlc_sig=""
208 wlc_bar=""
20915simandl wlc_noise=""
2106simandl wlc_std=""
2114simandl}
212######################################################################
2132simandlw_bar()
214{
21511simandl wl_neg=`expr $wl_cnt \< 0 `
216 if [ "$wl_neg" -eq 1 ]
217 then
21815simandl echo -n "${wlc_noise}"
21911simandl wl_cnt=$(($wl_cnt * -1 ))
220 wl_bar=$wlch_noise
221 else
22215simandl echo -n "${wlc_bar}"
22311simandl wl_bar=$wlch_signal
224 fi
2252simandl until [ "$wl_cnt" -eq -1 ]
226 do
22711simandl echo -n "$wl_bar"
2282simandl wl_cnt=$(($wl_cnt - 1 ))
229 done
230 printf " \n"
2316simandl echo -n "${wlc_std}"
23211simandl# tput sgr0
2332simandl} # w_bar
234 
235######################################################################
23613simandlw_pkts()
237{
238 wl_macpkts=`cat $wl_hostap$wl_iface/$wl_mac | grep -E 'rx\[|tx\[' | sed 's/=/ /g'`
23914simandl wl_nt1=`echo $wl_macpkts | $wl_awkcmd '{print $2}'`
240 wl_nt2=`echo $wl_macpkts | $wl_awkcmd '{print $4}'`
241 wl_nt5=`echo $wl_macpkts | $wl_awkcmd '{print $6}'`
242 wl_nt11=`echo $wl_macpkts | $wl_awkcmd '{print $8}'`
243 wl_nr1=`echo $wl_macpkts | $wl_awkcmd '{print $10}'`
244 wl_nr2=`echo $wl_macpkts | $wl_awkcmd '{print $12}'`
245 wl_nr5=`echo $wl_macpkts | $wl_awkcmd '{print $14}'`
246 wl_nr11=`echo $wl_macpkts | $wl_awkcmd '{print $16}'`
24713simandl 
248 if [ $wcm_ppkts -eq 1 ]
249 then
250 wl_pksize=$((98))
251 wl_nt=$(($wl_nt1 + $wl_nt2 + wl_nt5 + wl_nt11))
252 if [ "$wl_nt1" -eq 0 ]
253 then
254 wl_nt1n="00"
255 else
256 wl_nt1n=$(($wl_pksize * $wl_nt1 / $wl_nt + 1))
257 [ "$wl_nt1n" -lt 10 ] && wl_nt1n="0"$wl_nt1n
258 fi
259 if [ "$wl_nt2" -eq 0 ]
260 then
261 wl_nt2n="00"
262 else
263 wl_nt2n=$(($wl_pksize * $wl_nt2 / $wl_nt + 1))
264 [ "$wl_nt2n" -lt 10 ] && wl_nt2n="0"$wl_nt2n
265 fi
266 if [ "$wl_nt5" -eq 0 ]
267 then
268 wl_nt5n="00"
269 else
270 wl_nt5n=$(($wl_pksize * $wl_nt5 / $wl_nt + 1))
271 [ "$wl_nt5n" -lt 10 ] && wl_nt5n="0"$wl_nt5n
272 fi
273 if [ "$wl_nt11" -eq 0 ]
274 then
275 wl_nt11n="00"
276 else
277 wl_nt11n=$(($wl_pksize * $wl_nt11 / $wl_nt + 1))
278 [ "$wl_nt11n" -lt 10 ] && wl_nt11n="0"$wl_nt11n
279 fi
280 wl_nr=$((1 + $wl_nr1 + $wl_nr2 + wl_nr5 + wl_nr11))
281 if [ "$wl_nr1" -eq 0 ]
282 then
283 wl_nr1n="00"
284 else
285 wl_nr1n=$(($wl_pksize * $wl_nr1 / $wl_nr + 1))
286 [ "$wl_nr1n" -lt 10 ] && wl_nr1n="0"$wl_nr1n
287 fi
288 if [ "$wl_nr2" -eq 0 ]
289 then
290 wl_nr2n="00"
291 else
292 wl_nr2n=$(($wl_pksize * $wl_nr2 / $wl_nr + 1))
293 [ "$wl_nr2n" -lt 10 ] && wl_nr2n="0"$wl_nr2n
294 fi
295 if [ "$wl_nr5" -eq 0 ]
296 then
297 wl_nr5n="00"
298 else
299 wl_nr5n=$(($wl_pksize * $wl_nr5 / $wl_nr + 1))
300 [ "$wl_nr5n" -lt 10 ] && wl_nr5n="0"$wl_nr5n
301 fi
302 if [ "$wl_nr11" -eq 0 ]
303 then
304 wl_nr11n="00"
305 else
306 wl_nr11n=$(($wl_pksize * $wl_nr11 / $wl_nr + 1))
307 [ "$wl_nr11n" -lt 10 ] && wl_nr11n="0"$wl_nr11n
308 fi
30915simandl echo -n "Tx"${wlc_pkts} $wl_nt1n $wl_nt2n $wl_nt5n $wl_nt11n ${wlc_std}""
310 echo -n "Rx"${wlc_pkts} $wl_nr1n $wl_nr2n $wl_nr5n $wl_nr11n ${wlc_std}""
31113simandl fi
312 
313 [ $wcm_pkts -eq 1 ] && echo -n "Tx" $wl_nt1 $wl_nt2 $wl_nt5 $wl_nt11 "Rx" $wl_nr1 $wl_nr2 $wl_nr5 $wl_nr11 ""
314 
315} # w_pkts
316######################################################################
31717simandlw_managed()
318{ echo $wl_iwctxt | $wl_awkcmd '{print $1,$3,$4,$5" "}'
31924simandl echo -n `$wl_ifccmd $wl_iface | grep -E "inet addr|inet adr" | $wl_awkcmd '{print $2}' | sed s/ad*r://g`" " # IP adresa mastera z ifconfig
32015simandl 
32118simandl if [ $wcm_macoff -eq 0 ]
32215simandl then
32325simandl wl_mac=`echo -n $wl_iwctxt | $wl_awkcmd '{print $8}'`
32418simandl echo -n "${wlc_mac}$wl_mac${wlc_std} "
32515simandl fi
32626simandl echo $wl_iwctxt | $wl_awkcmd '{print $6,$10,$11,$12" "}'
32715simandl 
32824simandl wl_wtxt=`cat $wl_wireless | grep $wl_iface | $wl_awkcmd '{print $3,$4,$5}' | sed 's/\.//g'`
32914simandl wl_quality=`echo $wl_wtxt | $wl_awkcmd '{print $1}'`
330 wl_signal=`echo $wl_wtxt | $wl_awkcmd '{print $2}'`
3312simandl wl_signal=$(($wl_signal - 256))
33214simandl wl_noise=`echo $wl_wtxt | $wl_awkcmd '{print $3}'`
3332simandl wl_noise=$(($wl_noise - 256))
3345simandl echo "Quality:${wlc_sig}$wl_quality${wlc_std}/92 Signal level:$wl_signal Noise level:$wl_noise "
3352simandl wl_cnt=$wl_quality
336 w_bar
337 echo
338} # w_managed
339 
340######################################################################
341w_master()
34217simandl{ if [ $wcm_oneline -eq 0 ]
34321simandl then
344 echo $wl_iwctxt | $wl_awkcmd '{print $1,$3,$4,$5" "}'
345 if [ $wcm_macoff -eq 1 ]
346 then
34729simandl echo $wl_iwctxt | $wl_awkcmd '{print $6,$10,$11,$12" "}'
34821simandl else
34929simandl echo $wl_iwctxt | $wl_awkcmd '{print $6,$8,$10,$11,$12" "}'
35021simandl fi
351 else
35226simandl echo $wl_iwctxt | $wl_awkcmd '{print $1,$4,$5,$6,$11,$12" "}' | sed 's/ [^": ]*:/ /g'
35321simandl fi
354 
355 if [ -d $wl_hostap$wl_iface ]
35615simandl then
35721simandl wl_numcl=`ls $wl_hostap$wl_iface | grep -c 00`
358 wl_macs=`ls $wl_hostap$wl_iface | grep 00`
3595simandl fi
36021simandl 
36127simandl if [ -d $wl_madwifi$wl_iface ]
36221simandl then
36328simandl wl_numcl=`$wl_wlancf $wl_iface list sta | grep -c ^[0..9]`
364# wl_numcl=`cat $wl_madwifi$wl_iface/associated_sta | grep -c macaddr`
365# wl_macs=`cat $wl_madwifi$wl_iface/associated_sta | tr "<" "#" | tr ">" "#" | tr " " "#" | tr "\n" "#" | tr "m" "\n" `
366 wl_macs=`$wl_wlancf $wl_iface list sta | grep ^[0..9] | tr " " "#"`
36721simandl fi
36829simandl 
369 if [ -d $wl_sysdev$wl_iface ]
370 then
371 wl_numcl=`$wl_iwlcmd $wl_iface peers | grep -c 00`
372 wl_macs=`iwlist $wl_iface peers | grep 00 | awk '{print $1}'`
373 fi
374 
3752simandl echo $wlm_number_of_clients $wl_numcl
37613simandl 
3775simandl wl_numcllast=$(($wl_numcllast + $wl_numcl))
37813simandl 
37921simandl for wl_mac in $wl_macs
3802simandl do
38121simandl if [ -d $wl_hostap$wl_iface ]
382 then
383 wl_macparam=`cat $wl_hostap$wl_iface/$wl_mac | grep -E 'last_rx|last_tx' | sed 's/last_//g'`
38422simandl wl_signal=`echo $wl_macparam | $wl_awkcmd '{print $6}' | sed 's/signal[=|:]//g'`
385 wl_silence=`echo $wl_macparam | $wl_awkcmd '{print $4}' | sed 's/silence[=|:]//g'`
38621simandl fi
387 
38827simandl if [ -d $wl_madwifi$wl_iface ]
38921simandl then
39028simandl wl_signal=`echo $wl_mac | tr "#" " " | $wl_awkcmd '{print $5}'`
391 wl_rxtx=`echo $wl_mac | tr "#" " " | $wl_awkcmd '{print "rate="$4" tx="$8" rx="$9}'`
39227simandl wl_silence="0"
39328simandl wl_mac=`echo $wl_mac | tr "#" " " | $wl_awkcmd '{print $1}'`
39421simandl fi
39529simandl 
396 if [ -d $wl_sysdev$wl_iface ]
397 then
398 wl_macparam=`$wl_iwlcmd $wl_iface peers | grep $wl_mac`
399 wl_signal=`echo $wl_macparam | $wl_awkcmd '{print $5}' | sed 's/level[=|:]//g'`
400 wl_silence=`echo $wl_macparam | $wl_awkcmd '{print $8}' | sed 's/level[=|:]//g'`
401 fi
402 
40311simandl wl_cnt=$(($wl_signal - $wl_silence))
40414simandl wl_ipc=`cat $wl_arp | grep -i $wl_mac | $wl_awkcmd '{print $1}'` # IP adresa peeru z arp tabulky
40513simandl 
40614simandl wl_name=`cat $wl_dhcpcnf | grep -i $wl_mac | $wl_awkcmd '{print $2}'`
407 if [ "$wl_name" = "ethernet" ] || [ "$wl_name" = "" ]
408 then
409 wl_name=`cat $wl_dhcpcnf | grep -i $wl_mac -B 1 | $wl_awkcmd '{print$2,$3}' | grep -i $wl_mac -v | $wl_awkcmd '{print$1}'`
410 if [ "$wl_name" = "" ]
411 then
41217simandl wl_name=`cat $wl_dhcplss | grep -i $wl_mac -A 2 | grep -i client-hostname | $wl_awkcmd '{print$2}'`
41314simandl wl_name=`echo $wl_name | $wl_awkcmd '{print$1}' `
414 fi
415 fi
41621simandl if [ $wcm_ppkts -eq 1 ] || [ $wcm_pkts -eq 1 ] && [ -d $wl_hostap$wl_iface ]
41713simandl then
418 w_pkts
419 fi
420 
4215simandl if [ $wcm_oneline -eq 0 ]
422 then
42315simandl echo -n "${wlc_name}$wl_name${wlc_std} "
4245simandl echo -n "${wlc_ip}$wl_ipc${wlc_std} "
42515simandl if [ $wcm_macoff -eq 0 ]
426 then
427 echo -n "${wlc_mac}$wl_mac${wlc_std} "
428 fi
429 if [ $wcm_threeline -eq 1 ]
430 then
431 echo ""
432 echo -n " "
433 fi
434 echo -n "Signal ${wlc_sig}$wl_cnt${wlc_std} "
435 if [ $wcm_rxtx -eq 0 ]
436 then
437 echo ""
438 else
43921simandl if [ -d $wl_hostap$wl_iface ]
440 then
44128simandl echo -n $wl_macparam | $wl_awkcmd '{print $1,$2" "}'
44221simandl fi
44328simandl if [ -d $wl_madwifi$wl_iface ]
444 then
445 echo -n $wl_rxtx
446 fi
447 echo ""
44815simandl fi
4495simandl w_bar
450 else
45115simandl if [ $wcm_macoff -eq 0 ]
452 then
453 echo -n "${wlc_mac}$wl_mac${wlc_std} "
454 fi
455 echo -n "${wlc_sig}$wl_cnt${wlc_std} "
45617simandl echo -n "$wl_name "
4575simandl w_bar
458 fi
4594simandl done
46011simandl 
461 echo
4622simandl} # w_master
463 
464######################################################################
465w_iface()
46626simandl{ wl_iwctxt=`$wl_iwccmd $wl_iface 2>/dev/null | grep -v 'Device|Some|Extension' | sed 's/ dBm/dBm/' | sed 's/ GHz/GHz/' | sed 's/ Mb/Mb/' | sed 's/ Nick/_Nick/' | sed 's/Access Point/Access_Point/'`
46714simandl wl_mode=`echo $wl_iwctxt | $wl_awkcmd '{print $5}' | sed 's/Mode://g'`
4682simandl if [ "a$wl_mode" = "aManaged" ]
469 then
470 w_managed
4718simandl elif [ "a$wl_mode" = "aAd-Hoc" ]
472 then
473 w_managed
4742simandl elif [ "a$wl_mode" = "aMaster" ]
475 then
476 w_master
477 else
47824simandl echo $wl_iface $wlm_no_managed_or_master
4792simandl echo
480 fi
481}
482 
483######################################################################
48411simandlw_version()
485{
486 echo wifimon $wl_version
487 exit 0
488}
489######################################################################
4905simandlw_help()
491{
49221simandl echo Monitorovani wifi karet pouzivajicich hostap nebo madwifi ovladace
4933simandl echo Pouziti: wifimon [param]
494 echo param:
49511simandl echo -v vypise verzi
4965simandl echo -html generovani html stranky
49713simandl echo -col barevny vypis na obrazovku
4985simandl echo -once vypsani jen jednoho vypisu a pak program skonci
499 echo -oneline vypsani klientu na jednu linku
50015simandl echo -threeline vypsani klienta na trech radcich
50121simandl echo -macoff vypnuti zobrazeni MAC adres
502 echo -wlan0 -ath0 -wlan2 vypise jen uvedene karty a to v danem poctu a poradi
503 echo nasledujici parametry ovlivnuji jen karty s hostap:
50415simandl echo -rxtxoff vypnuti zobrazeni objemu prenesenych dat klienta
50513simandl echo -ppkts vypsani procentniho pomeru 1M, 2M, 5.5M a 11M paketu pro jednotlive klienty
506 echo -pkts vypsani poctu 1M, 2M, 5.5M a 11M paketu pro jednotlive klienty
5073simandl echo bez parametru cyklicky vypis na obrazovku
5085simandl exit 0
509}
510######################################################################
511######################################################################
5122simandl 
5135simandlwl_unknown=""
514wl_cnt=1
515wcm_clear=1
516wcm_once=0
51724simandlwcm_col=0
5185simandlwcm_oneline=0
51915simandlwcm_threeline=0
5205simandlwcm_html=0
52115simandlwcm_rxtx=1
52213simandlwcm_ppkts=0
523wcm_pkts=0
5245simandlwcm_ifc=""
52515simandlwcm_macoff=0
5265simandl 
5276simandl# parsing input parameters
5285simandlwhile [ "a$1" != "a" ]
529do
530 case $1 in
53111simandl -v)
532 w_version
533 ;;
5345simandl -help)
535 w_help
536 ;;
537 -once)
538 wcm_once=1
539 shift
540 ;;
541 -oneline)
542 wcm_oneline=1
543 shift
544 ;;
54515simandl -threeline)
546 wcm_threeline=1
547 shift
548 ;;
54911simandl -col)
55024simandl wcm_col=1
5515simandl shift
552 ;;
553 -html)
554 wcm_html=1
555 shift
556 ;;
55715simandl -rxtxoff)
558 wcm_rxtx=0
559 shift
560 ;;
56113simandl -ppkts)
562 wcm_ppkts=1
563 shift
564 ;;
565 -pkts)
566 wcm_pkts=1
567 shift
568 ;;
56915simandl -macoff)
570 wcm_macoff=1
571 shift
572 ;;
5735simandl *)
574 wl_flg=0
57519simandl#wlan check
57621simandl if [ $wlf_hostap -eq 1 ]
5775simandl then
57821simandl for wl_iface in `ls $wl_hostap`
579 do
58024simandl if [ "a-$wl_iface" = "a$1" ]
58121simandl then
582 wcm_ifc="$wcm_ifc $wl_iface"
583 wl_flg=1
584 fi
585 done
586 fi
58719simandl# ath check
58821simandl if [ $wlf_madwifi -eq 1 ]
58919simandl then
59027simandl for wl_iface in `ls $wl_madwifi | grep "ath[0-9]"`
59121simandl do
59224simandl if [ "a-$wl_iface" = "a$1" ]
59321simandl then
594 wcm_ifc="$wcm_ifc $wl_iface"
595 wl_flg=1
596 fi
597 done
598 fi
5995simandl if [ $wl_flg -eq 0 ]
60021simandl then
601 wl_unknown="$wl_unknown$1 "
6025simandl fi
603 shift
604 esac
605done
606 
6076simandl# printing the list of bad parameters (if there are some)
6085simandlif [ "a$wl_unknown" != "a" ]
609then
610 echo "$wlm_unknown $wl_unknown"
611 w_help
612fi
61329simandl 
6146simandl# if no interface is selected then all available are choosen
6155simandlif [ "a$wcm_ifc" = "a" ]
616then
61721simandl if [ $wlf_hostap -eq 1 ]
618 then
619 wcm_ifc=`ls $wl_hostap `
620 fi
621 if [ $wlf_madwifi -eq 1 ]
622 then
62329simandl wcm_ifc=`echo $wcm_ifc ; ls $wl_sysdev | grep "ath[0-9]" ; ls $wl_madwifi | grep "ath[0-9]"`
62421simandl fi
6255simandlfi
626 
6276simandl# setting for old and last same value to avoid double clear after start
628wl_numcllast=0
629wl_numclold=0
630for wl_iface in $wcm_ifc
631do
63221simandl if [ -d $wl_hostap$wl_iface ]
633 then
634 wl_numcl=`ls $wl_hostap$wl_iface | grep -c 00`
635 wl_numcllast=$(($wl_numcllast + $wl_numcl))
636 fi
63727simandl if [ -d $wl_madwifi$wl_iface ]
63821simandl then
63924simandl wl_mode=`$wl_iwccmd $wl_iface | grep Mode | $wl_awkcmd '{print $1}' | sed 's/Mode://g'`
64021simandl if [ "a$wl_mode" = "aMaster" ]
641 then
64228simandl wl_numcl=`$wl_wlancf $wl_iface list sta | grep -c ^[0..9]`
64321simandl wl_numcllast=$(($wl_numcllast + $wl_numcl))
644 fi
645 fi
64629simandl if [ -d $wl_sysdev$wl_iface ]
647 then
648 wl_mode=`$wl_iwccmd $wl_iface | grep Mode | $wl_awkcmd '{print $1}' | sed 's/Mode://g'`
649 if [ "a$wl_mode" = "aMaster" ]
650 then
651 wl_numcl=`$wl_iwlcmd $wl_iface peers | grep -c 00`
652 wl_numcllast=$(($wl_numcllast + $wl_numcl))
653 fi
654 fi
655 
6566simandldone
657wl_numclold=$wl_numcllast
658 
65911simandlif [ $wcm_col -eq 0 ]
6606simandlthen
661 w_bw
66211simandlelse
66315simandl if [ $wcm_html -eq 1 ]
664 then
665 w_colh
666 else
667 w_col
668 fi
6696simandlfi
670 
67113simandlif [ $wcm_html -eq 1 ]
672then
673 [ $wcm_once -eq 1 ] && echo $wl_header || echo $wl_header_refresh
674 for wl_iface in $wcm_ifc
675 do
676 w_iface
677 done
678 echo $wl_footer
679 exit 0
680fi
681 
68215simandl#this is main loop and it will be executed forever
6836simandlwhile [ 1 ]
6845simandl do
68514simandl 
686 # when the number of associated klients has changed we will set for clear screen
6875simandl if [ $wl_numcllast -ne $wl_numclold ]
688 then
689 wl_numclold=$wl_numcllast
690 wcm_clear=1
691 fi
69214simandl 
693 #if it is set for clear screen we will do it except we produce single report
694 if [ $wcm_clear -eq 1 -a $wcm_once -eq 0 ]
6955simandl then
69614simandl echo -n $wl_clrcmde
6975simandl wcm_clear=0
698 fi
699 wl_numcllast=0
70011simandl 
70114simandl #for cyclic report we are trying to set cursor to the top left screen corner
702 if [ $wcm_once -eq 0 ]
703 then
704 echo -n $wl_tptcmde
705 fi
706 
707 #make report for all desired interfaces
70813simandl for wl_iface in $wcm_ifc
709 do
710 w_iface
711 done
712 
71314simandl #when a single report is needed than we are exiting
7145simandl if [ $wcm_once -eq 1 ]
715 then
716 exit 0
717 fi
718 sleep 1
7196simandldone
7205simandl 
721exit 0
722 

Powered by WebSVN 2.2.1