Wifiweasel
From Openmoko
script to Auto connect to Open wirelss 81102 AP's
Contents |
TODO
- determine AP without encryption and sort by best signal
- using essid of best signal perform connect/udhcpc and chknet every so often
if net is down repeat
- put it all together
sandbox
iwscan perl
#!/usr/bin/perl # Tim Osburn - tim@osburn.com # # install perl $iwlist = "/sbin/iwlist eth0 scanning"; open scan, "$iwlist |"; while (<scan>) { if (/^\s+Cell (\S+) - Address: (\S+)/) { $CELL=$1; $ADDRESS=$2; # print "$1 $2"; $INLOOP=1; } if (/^\s+ESSID:(\S+)/) { $ESSID=$1; print " $1"; } if (/^\s+Frequency:\S+ \S+ \(Channel (\S+)\)/) { $CHAN=$1; print " $1"; } if (/^\s+Quality=\S+\s+Signal level=(\S+).*/) { $SIGNAL=$1; print " $1"; } if (/^\s+Encryption key:(\S+)/) { $ENCRYPTION=$1; print " $1\n"; } } close scan;
produces output in the form of "essid" channel signal_strength encryption_status
"ESSID_NAME1" 1 -82 on
"ESSID_NAME2" 1 -49 off
iwscan bash
(Not Finished)
#!/bin/sh # # Blind simple stupid OpenAP finder/connector # # grab a list of line seperated open AP's for AP in $(iwlist eth0 scanning | awk -F '[ :=]+' '/(ESS|Freq|Qual)/{ printf $3" " } /Encr/{ print $4 }' \ | sort -k4 -k3nr |grep off \ |awk ' iwlist eth0 scanning | awk -F '[ :=]+' '/(ESS|Freq|Qual)/{ printf $3" " } /Encr/{ print $4 }' \ | sort -k4 -k3nr |grep off |awk '{print $1}'{print $1}'); do #needs more logic? (connect) while net works do nothing ifnot goto next $AP ? ideas? # ifconfig eth0 essid $AP # udhcpc eth0 # # is net on/working? # w00t=yes FAIL=no HOSTTT="google.com" for Hosts in $HOSTTT do count=$(ping -c 1 $HOSTTT | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }') if [ $count -eq 0 ]; then # 100% failed echo "FAIL" fi if [ $count -eq 1 ]; then echo "w00t" fi done