diff options
author | makefu <github@syntax-fehler.de> | 2014-12-20 22:02:08 +0100 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2014-12-20 22:02:08 +0100 |
commit | 16e1373ddd9050dd06cd699b2874cf178375574b (patch) | |
tree | 0352a0f39f4426327ffd4aa16dad8e0e15a6a8c4 /usr/lib/autowifi/lib/iwlist | |
parent | 120114ad12a212331e9e790305a4ab3afdc15857 (diff) | |
parent | 6a9beb12dad44b5e1efa984b112c7a6b8c13a118 (diff) |
Merge remote-tracking branch 'inspector_wifi/wifi_scanner'
Conflicts:
.gitignore
Diffstat (limited to 'usr/lib/autowifi/lib/iwlist')
-rw-r--r-- | usr/lib/autowifi/lib/iwlist | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/usr/lib/autowifi/lib/iwlist b/usr/lib/autowifi/lib/iwlist new file mode 100644 index 00000000..a9f77f0c --- /dev/null +++ b/usr/lib/autowifi/lib/iwlist @@ -0,0 +1,55 @@ +#!/bin/sh + +print_iwlist_env(){ + # takes environment: + # count + # MAC + # CHANNEL + # QUALITY + # ENCRYPTION + # ESSID + # WPA + # WPA2 + for i in ESSID MAC CHANNEL QUALITY ENCRYPTION WPA WPA2;do + eval echo ${i}_${count}=\$${i} + done +} + +iwlist_scan(){ + # usage: iwlist_scan $wifi-itf + ifconfig $wifi up + + count=0 + + iwlist ${1:-} scan 2>/dev/null | ( while read line; + do + case "$line" in + *"Cell "*) + [ $count -eq 0 ] || print_iwlist_env + WPA=0 + WPA2=0 + : $((count+=1)) + MAC="${line#*Address: }" + ;; + *Channel:*) + CHANNEL="${line#*:}" + ;; + *Quality=*) + QUALITY="`printf '%s' ${line#*Quality=} | cut -d/ -f 1`" + ;; + *"Encryption key:"*) + ENCRYPTION="${line#*key:}" + ;; + *ESSID:*) + ESSID="${line#*ESSID:}" + ;; + *"IE: IEEE 802.11i/WPA2"*) + WPA2=1 + ;; + *"IE: WPA Version 1"*) + WPA=1 + ;; + *);; + esac + done; print_iwlist_env ;echo WIFI_COUNT=$count) +} |