Wifiweasel

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(iwscan bash)
(iwscan bash)
Line 57: Line 57:
 
#!/bin/sh
 
#!/bin/sh
 
#
 
#
# Blind simple stupid OpenAP finder/connector
+
# Kd8ikt
 
+
#
 
#
 
#
 
# grab a list of line seperated open AP's
 
# 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 }' \
+
for AP in $(
    | sort -k4 -k3nr |grep off \
+
iwlist eth0 scanning \
    |awk ' iwlist eth0 scanning | awk -F '[ :=]+' '/(ESS|Freq|Qual)/{ printf $3" " } /Encr/{ print $4 }' \
+
| awk -F '[ :=]+' '/(ESS|Freq|Qual)/{ printf $3" " } /Encr/{ print $4 }' \
    | sort -k4 -k3nr |grep off |awk '{print $1}'{print $1}'); do
+
|sort -k4 -k3nr \
 
+
|grep off \
 +
|awk '{print $1}'
 +
);
 +
  do
 +
echo $AP
 +
break;
 +
done;
 +
# $AP is a line separated list of open (free) accesspoints
 +
#
 +
#
 
#needs more logic?  (connect)  while net works do nothing ifnot goto next $AP ? ideas?
 
#needs more logic?  (connect)  while net works do nothing ifnot goto next $AP ? ideas?
 
# ifconfig eth0 essid $AP
 
# ifconfig eth0 essid $AP

Revision as of 07:32, 22 July 2008

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
#
# Kd8ikt 
#
#
# 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 '{print $1}'
); 
   do 
echo $AP
break;
done;
# $AP is a line separated list of open (free) accesspoints 
#
#
#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
Personal tools

script to Auto connect to Open wirelss 81102 AP's

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
</div>