iface=$1 channel="" ess="" bss="" wps="" sec="" encryption="" mgmt="" mode="" noise="" rssi="" signal="" print=0 set_address=0 set_signal=0 set_noise=0 echo $(iwlist $iface scanning | grep Cell |wc -l) ret=$(iwlist $iface scanning last) for line in $ret; do if [ $set_address -eq "1" ]; then bss="$line" set_address=0 continue fi if [ $set_signal -eq "1" ]; then signal=${line:6} set_signal=0 continue fi if [ $set_noise -eq "1" ]; then noise=${line:6} set_noise=0 continue fi case "$line" in Cell) if [ $print -eq "1" ]; then rssi=$((signal-noise)) if [ -z $ess ]; then ess="-" fi echo "$channel,$ess,$bss,$wps,$sec,$encryption,$mgmt,$mode,$noise,$rssi" unset channel ess bss wps sec encryption mgmt mode noise rssi else print=1 fi ;; Address*) set_address=1 ;; ESSID*) ess=${line:6} ;; Signal) set_signal=1 ;; Noise) set_noise=1 ;; Frequency*) channel=${line:10} channel=${channel//.} while [ ${#channel} -lt 4 ]; do channel=$channel"0" done ;; *) wps="-" sec="-" encryption="-" mgmt="-" mode="-" ;; esac done if [ -z $ess ]; then ess="-" fi rssi=$((signal-noise)) echo "$channel,$ess,$bss,$wps,$sec,$encryption,$mgmt,$mode,$noise,$rssi"