maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   An app to automatically grab open wifi? (https://talk.maemo.org/showthread.php?t=23248)

Laughing Man 2008-08-31 02:14

Re: An app to automatically grab open wifi?
 
Maybe there's an error in the instruction on line 31 of the code? (count how many lines down). Maybe the internet tablets don't support the protocal or something is missing? I see it needs wireless tools.

ajax1 2008-08-31 02:45

Re: An app to automatically grab open wifi?
 
Suggest you look at the DD-WRT script "autoAP". This may give you some ideas.


From the wiki
"AutoAP is a script that continuously scans for open Wi-Fi connections, tests them for validity, and connects to the strongest signal. If the connection is lost, the script scans again and finds the strongest valid signal again, and maintains a continuous connection to the internet in a mobile or portable environment. The script paremeters are highly configurable, including ability to configure secure connections. "

Parameters include:
Filters to avoid logging onto specific SSIDs
Filters giving preferential logging onto specific SSIDs, including encyption key values


Script can also verify that successful wifi connection also allows internet access.

I would love to see something like this adapted to run on the Nokia tablets.

See
http://www.dd-wrt.com/wiki/index.php/Autoap
and
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=6575

arover 2008-08-31 04:48

Re: An app to automatically grab open wifi?
 
See, I looked at AutoAP...It's not the same kind of 'script' in the sense that the code is just there and easy to look at...At least not for me. The script uses the router interface / commands and wouldn't be easy to port to the N810, at least not that specific script. The best thing to use is a bash / sh based script that takes advantage of wireless-tools. I was working with a friend earlier who's more experienced with scripting in bash to work out the bugs in that script I posted- It seems to be our best bet. I wish I had more experience in this sort of stuff. I'm going to resume work on it when I return in a few days. Until then, if anyone wants to take a whack at running/debugging it on the N810, xterm, chmod 777 the file (copy and paste the script in notepad, save it as something.sh, copy it over), and run it in root. Have fun :P

computerfreek 2008-09-01 02:30

Re: An app to automatically grab open wifi?
 
To bad it's not like the old dlink/linksys and windows where you can just put in ssid "ANY" all CAPS and it will auto connect to any open access point .
Maybe it works the same way i did not test it on linux or n810 ..

Computerfreek274

n810_itt 2008-09-02 20:51

Re: An app to automatically grab open wifi?
 
Hello,

I'm new around here and also in need of a script of this kind. I took the previously posted script and adapted it a bit to my needs. This sort of works for me on an n810. It chooses the strongest AP and connects to it. Sadly, even if the connection can be established, I can't get the tablet to switch to a "connected" state, so for now one has to manually reconnect with the statusbar applet if the connection via this script worked.

I'd be very grateful if anybody adds improvements. Especially the parsing code is quite slow.
Lateron I also want to add the possibility to manually choose the AP to connect to. But the biggest problem for now is the unability to get the tablet connected and "online" on the commandline.

Code:

#!/bin/bash
# Finds the strongest unencrypted AP and tries to connect to it via dhcp
# Call this script like "wifi.sh wlan0"
echo hi

if [ `whoami` != "root" ];then
echo "Sorry, you need to be root to run this program"
exit 1
fi

interface=wlan0
ifconfig $interface up

# Proggy
while true
do
iwlist $interface scan > $TEMP
NumAPs=`cat $TEMP | grep ESSID | wc -l`
BestAP=0
BestQuality=-1
BestESSID=""
echo APs: $NumAPs
for i in `seq 1 $NumAPs`;
do
# Check if AP is encrypted
Encryption=`cat $TEMP | grep Encryption | head -n$i | tail -n1 | cut -d":" -f2`
if [ $Encryption = "off" ]; then
# Find AP with the highest quality
ESSID=`cat $TEMP | grep ESSID | head -n$i | tail -n1 | cut -d"\"" -f2` 
MODE=`cat $TEMP | grep Mode | head -n$BestAP | tail -n1 | cut -d":" -f2`
QUALITY=`cat $TEMP | grep Quality | head -n$i | tail -n1 | cut -d":" -f2 | cut -d"/" -f1 | sed 's/ //g'`
echo ESSID=$ESSID Mode=$MODE Quality=$QUALITY
if [ "$QUALITY" -gt "$BestQuality" ]; then
BestQuality=$QUALITY
BestAP=$i
BestESSID=$ESSID
fi
fi
done
if [ $BestAP -gt 0 ]; then
timeout 2 mplayer /usr/share/sounds/ui-new_email.wav > /dev/null 2>&1 &
# Yay, we found an unencrypted AP:
echo
#ESSID=`cat $TEMP | grep ESSID | head -n$BestAP | tail -n1 | cut -d"\"" -f2`
CHANNEL=`cat $TEMP | grep Channel | head -n$BestAP | tail -n1 | cut -d":" -f2 | sed 's/Channel //g' | sed 's/)//g'`
echo Connecting to \"$BestESSID\"  Channel $CHANNEL
echo
# Connect
iwconfig $interface essid "$BestESSID" channel $CHANNEL mode managed #$MODE
sleep 3
iwconfig #2>&1 | grep ESSID
echo
if ping -c2 `udhcpc -i $interface -n -q 2>&1 | grep dns | cut -d" " -f3`
then
echo
ping -c 1 www.google.com
echo
echo very well
echo
read a
ifconfig $interface down
ifconfig $interface up
else
echo
echo bad
echo
ifconfig $interface down
ifconfig $interface up
fi
fi
done
# Cleanup


n810_itt 2008-09-03 05:00

Re: An app to automatically grab open wifi?
 
Forgot to add, this runs with sh:

sh /path/toscript

bash is not needed.

Bye


All times are GMT. The time now is 22:54.

vBulletin® Version 3.8.8