WifiDocs/WiFiHowTo - Community Ubuntu Documentation
23 September 2006WifiDocs/WiFiHowTo - Community Ubuntu Documentation
Automatic WLAN Picker Script
I have written a small script to have my laptop automatically pick a WLAN network of several configured. It uses the wireless utils to scan for known/open networks on “ifup interface”. The script wlan-scan.sh looks like this:
#!/bin/sh
IFACE=$1
ip link set $IFACE up
SCAN=$( \
iwlist $IFACE scan 2>&1 | grep -v “^$IFACE” | grep -v “^$” | \
sed -e “s/^\ *//” \
-e “s/^Cell [0-9]\ - /#/” \
-e “s/^#Address: /#AP=/” \
-e “s/^Quality:\([0-9]\ \)\/.*$/QUALITY=\1/” \
-e “s/^.*Channel \([0-9]\ \).*$/CHANNEL=\1/” \
-e “s/^ESSID:/ESSID=/” \
-e “s/^Mode:/MODE=/” \
-e “s/^Encryption key:/ENC=/” \
-e “s/^[^#].*:.*//” | \
tr “\n#” “|\n” \
)
ip link set $IFACE down
which=”"
while read glob scheme; do
AP=”"; QUALITY=”"; CHANNEL=”"; ESSID=”"; MODE=”"; ENC=”"
for i in $SCAN ; do
for j in $(echo $i | sed -e “s/|/ /g” ) ; do
case $j in
AP=*)
AP=${j#AP=}
;;
QUALITY=*)
QUALITY=${j#QUALITY=}
;;
CHANNEL=*)
CHANNEL=${j#CHANNEL=}
;;
ESSID=*)
ESSID=${j#ESSID=}
;;
MODE=*)
MODE=${j#MODE=}
;;
ENC=*)
ENC=${j#ENC=}
;;
esac
done
case “$AP,$ESSID,$ENC,$MODE,$CHANNEL” in
$glob)
echo $scheme
exit 0
;;
esac
done
done
exit 1
Comments are closed.