Forum openmoko-fr.org

Forum de la communauté francophone autour du projet OpenMoko

Vous n'êtes pas identifié.

Annonce

Bienvenue sur ce forum.

Face à un afflux de spammers, les inscriptions ont été désactivée.
Si vous souhaitez vous inscrire, il faudra en faire la demande auprès du webmaster (voir la section "Contact" sur le Blog).

#1 14-07-2009 08:07:10

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

[SHR] Connexion automatique à un réseau FreeWifi

Bonjour à tous,

Vous connaissez probablement le réseau FreeWifi : il permet aux abonnés Free d'accéder à Internet lorsqu'ils sont à portée d'une freebox v5 : http://www.free.fr/adsl/pages/internet/ … iFree.html

J'essaie d'automatiser la connexion à ce réseau Wifi depuis le FreeRunner (j'utilise SHR unstable actuellement), un peu à la manière des applications iphone et Android qui font la même chose : cf http://code.google.com/p/freewifi-connect/ pour Android.
Ca permettrait, lorsqu'on est à proximité d'une freebox, d'accéder à Internet de manière bien + rapide qu'en GPRS.

Pour l'instant, j'essaie de faire cela en ligne de commande.
Il y a a priori 4 étapes :
1- activer le wifi
2- se connecter au réseau FreeWifi s'il est à portée (en contournant le problème de connexion à un Wifi open. Cf http://openmoko-fr.org/wiki/index.php/SHR#WiFi)
3- se connecter à https://wifi.free.fr, et récupérer le champ caché nommé "priv"
4- passer le login/mdp en GET à https://wifi.free.fr, avec le champ priv

J'ai pas encore creusé l'étape 1.
Pour l'étape 2 :

Code:

iwconfig eth0 essid FreeWifi
udhcpc eth0

Pour les étapes 3 et 4, j'ai fait un petit script (quick and dirty) :

Code:

login=xxxxxxx
password=yyyyyyyy
priv=`wget https://wifi.free.fr -O - | grep "priv" | sed -e "/a href/d" | sed -e 's/.*value="\([^"]*\)".*/\1/' `
wget "https://wifi.free.fr?login=$login&password=$password&priv=$priv" -O - | grep  "CONNEXION AU SERVICE"

Ce dernier script fonctionne bien sur mon PC avec ubuntu, mais pas sur SHR.
Le problème est en effet que la version de wget de busybox ne supporte pas le https, et me renvoie le message d'erreur ci-dessous :

Code:

wget: not an http or ftp url: https://wifi.free.fr

Evidemment, il serait possible de recompiler wget avec support du SSL, mais ça devient compliqué...

Je suis preneur de vos suggestions.

Hors ligne

 

#2 14-07-2009 16:13:41

piratebab
MoKorateur
Date d'inscription: 23-12-2008
Messages: 1060

Re: [SHR] Connexion automatique à un réseau FreeWifi

Utiliser un navigateur en ligne de commande ?


Lorsque tout le reste a échoué, lisez le mode d'emploi

Hors ligne

 

#3 14-07-2009 17:37:22

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Pourquoi pas, mais je n'ai pas trouvé de package opkg, que ce soit pour lynx, links ou w3m

Hors ligne

 

#4 15-07-2009 10:16:44

misc
Addicted-Moko
Lieu: Clamart
Date d'inscription: 10-04-2009
Messages: 724

Re: [SHR] Connexion automatique à un réseau FreeWifi

Y a pas urllib en python pour ça ?

Hors ligne

 

#5 15-07-2009 11:05:01

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Merci pour l'idée, misc.

Effectivement, je me suis fait un petit script wget.py qui utilise urllib pour renvoyer le contenu sur la sortie standard :

Code:

import urllib
import sys
sock = urllib.urlopen(sys.argv[1])
htmlSource = sock.read()
sys.stdout.write(htmlSource)

Ca marche bien sur mon PC, mais sur SHR, il ne trouve pas le module urllib :

Code:

ImportError: No Module named urllib

Hors ligne

 

#6 15-07-2009 12:08:08

kimaidou
Addicted-Moko
Lieu: Montpellier
Date d'inscription: 08-10-2008
Messages: 343

Re: [SHR] Connexion automatique à un réseau FreeWifi

Je crois qu'il faut python-netclient installé.


Kimaidou

Hors ligne

 

#7 15-07-2009 12:37:27

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Effectivement, un opkg install python-netclient, et ça marche!

Il faudrait également que j'améliore qqs points :
- activer le wifi en début de script (pour éviter de devoir le faire manuellement)
- externaliser le login/mot de passe dans un fichier de conf
- vérifier s'il existe un hotspot FreeWifi avant de tenter de m'y connecter
- ajouter une icône qui lance le script
- gérer + proprement les cas d'erreur : pas de hotspot FreeWifi, login/mot de passe incorrect etc

Pour ceux que ça intéresserait, ou qui voudraient contribuer, voici les scripts dans leur état actuel :
wget.py :

Code:

import urllib
import sys
sock = urllib.urlopen(sys.argv[1])
htmlSource = sock.read()
sys.stdout.write(htmlSource)

preparer_connexion_FreeWifi.sh :

Code:

iwconfig eth0 essid FreeWifi
udhcpc eth0

authentifier_FreeWifi.sh :

Code:

login=xxx
password=yyy
priv=`python wget.py https://wifi.free.fr -O - | grep "priv" | sed -e "/a href/d" | sed -e 's/.*value="\([^"]*\)".*/\1/' `
python wget.py "https://wifi.free.fr?login=$login&password=$password&priv=$priv" -O - | grep  "CONNEXION AU SERVICE"

et le script qui enchaine le tout, connecter_FreeWifi.sh :

Code:

preparer_connexion_FreeWifi.sh
authentifier_FreeWifi.sh

Pour que cela fonctionne, il faut installer python et python-netclient :

Code:

opkg install python python-netclient

Dernière modification par mossroy (16-07-2009 09:02:21)

Hors ligne

 

#8 15-07-2009 12:54:01

piratebab
MoKorateur
Date d'inscription: 23-12-2008
Messages: 1060

Re: [SHR] Connexion automatique à un réseau FreeWifi

j'ai un script à finir pour la video, et après je suis intéressé par ton travail.
Mais je vais aussi partir en vacances, loin de l'internet (pas de GPRS).
Donc on verra en septembre, si tu n'as pas fini d'ici là!


Lorsque tout le reste a échoué, lisez le mode d'emploi

Hors ligne

 

#9 15-07-2009 14:06:25

SuperZell
Addicted-Moko
Lieu: Montpellier
Date d'inscription: 06-01-2009
Messages: 196
Site web

Re: [SHR] Connexion automatique à un réseau FreeWifi

Très intéressant tout ça je trouve, bon courage pour la suite, c'est un appli très utile!

Hors ligne

 

#10 15-07-2009 22:46:41

kimaidou
Addicted-Moko
Lieu: Montpellier
Date d'inscription: 08-10-2008
Messages: 343

Re: [SHR] Connexion automatique à un réseau FreeWifi

hum... Ce qui serait génial pour la suite, c'est de permettre laccès à un autre réseau. Personnellement, je suis chez Neuf-Sfr, donc les réseaux s'appellent "NeufWifi"
Faut que je regarde si on peut pas utiliser le même système. Si oui, un fichier de conf pour choisir le type de réseau serait tip top


Kimaidou

Hors ligne

 

#11 16-07-2009 22:42:30

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Bon, j'ai complété un peu mes scripts pour améliorer un peu la remontée d'erreurs, et externaliser le login/mot de passe.
J'ai aussi fait un petit fichier .desktop pour pouvoir le lancer au doigt depuis le menu principal. Si vous savez où trouver la doc de ces fichiers, ça m'intéresse. Parce que, tel quel, c'est une bidouille pour voir l'exécution du script.

C'est encore bien "malpropre" (je suis pas du tout un spécialiste des scripts shell et du python), mais ça marche pas trop mal chez moi.
Je ne sais pas encore allumer le Wifi en ligne de commande : si vous savez, dites moi, c'est le principal truc qui manque pour se connecter rapidement.

Pour l'utiliser, il faut donc : créer un fichier .om_freewifi dans /home/root, qui contient le login/mot de passe :

Code:

login=xxx
password=yyy

Ensuite, il faut allumer le Wifi dans les settings de SHR, puis lancer l'icône FreeWifi.

Voici les codes sources, à placer dans /home/root pour l'instant (a priori ça pourrait être n'importe où en modifiant le .desktop donné en exemple)

Fichier wget.py :

Code:

import urllib
import sys
sock = urllib.urlopen(sys.argv[1])
htmlSource = sock.read()
sys.stdout.write(htmlSource)

Fichier preparer_connexion_FreeWifi.sh :

Code:

num_etape=1
echo "Etape $num_etape : connexion au hotspot FreeWifi"
if ifconfig eth0 2>&1 >/dev/null
then
    if iwconfig eth0 essid FreeWifi
    then
        udhcpc eth0
        echo "Etape $num_etape : connecté au hotspot FreeWifi"
        exit 0
    else
        echo "Etape $num_etape : hotspot FreeWifi introuvable"
        exit 1
    fi
else
    echo "Etape $num_etape : interface eth0 introuvable : peut-être que le Wifi n'est simplement pas activé?"
    exit 1
fi

Fichier authentifier_FreeWifi.sh :

Code:

num_etape=2
source ~/.om_freewifi
echo "Etape $num_etape : accès à la page d'accueil de FreeWifi"
if priv=`python wget.py https://wifi.free.fr -O - | grep "priv" | sed -e "/a href/d" | sed -e 's/.*value="\([^"]*\)".*/\1/' `
then
    echo "Etape $num_etape : connexion avec le login $login"
    if resultat=`python wget.py "https://wifi.free.fr?login=$login&password=$password&priv=$priv" -O -`
    then
        if echo "$resultat" | grep "REUSSIE"
        then
            echo "FreeWifi connecté!"
            exit 0
        else
            echo "$resultat" | grep -i "ERREUR"
            echo "Etape $num_etape : impossible de se logger au FreeWifi"
            exit 1
        fi
    else
        echo "Etape $num_etape : impossible de se logger au FreeWifi"
        exit 1
    fi
else
    echo "Etape $num_etape : impossible d'accéder à la page d'accueil de FreeWifi"
    exit 1
fi

Fichier connecter_FreeWifi.sh :

Code:

if preparer_connexion_FreeWifi.sh
then
    authentifier_FreeWifi.sh
    exit 0
else
    exit 1
fi

Fichier freewifi.desktop, à placer dans /usr/share/applications/ :

Code:

[Desktop Entry]
Name=FreeWifi
Comment=Connexion au reseau FreeWifi
Exec=vala-terminal -e ~/connecter_FreeWifi.sh
Icon=vala-terminal
Terminal=true
Type=Application
Categories=GTK;Application;Utility;
MimeType=text/x-vcard;
X-SingleInstance=true
StartupNotify=true

kimaidou, si le réseau NeufWifi fonctionne de manière analogue (avec un login/mot de passe que l'on peut passer en GET), y'aurait peut-être moyen d'utiliser la même technique. Mais je n'ai pas moyen d'essayer chez moi (pas de login/mdp Neuf, et pas de réseau NeufWifi vraiment proche)

Pour que ça soit mieux intégré dans SHR, il faudrait faire une IHM (pour saisir le login/mdp, puis qui affiche l'avancement étape par étape, qui affiche les erreurs etc), et un package opkg. Il faudrait aussi certainement rendre le code + propre, voire le réécrire dans un autre langage que du script shell+python...
Mais ça commence vraiment à dépasser mes compétences, et le temps que je vais pouvoir y passer...

Dernière modification par mossroy (17-07-2009 02:16:18)

Hors ligne

 

#12 17-07-2009 00:11:46

Jay
Mini Moko
Date d'inscription: 17-07-2009
Messages: 3

Re: [SHR] Connexion automatique à un réseau FreeWifi

Salut,

J'ai testé les scripts et cela fonctionne bien chez moi (il faut juste corriger le nom du script authentifier_FreeWifi.sh -> authentifier_connexion_FreeWifi.sh dans connecter_FreeWifi.sh)

Pour activer le Wifi en ligne de commande, il suffit de faire:

Code:

mdbus  -s org.freesmartphone.odeviced /org/freesmartphone/Device/PowerControl/WiFi org.freesmartphone.Resource.Enable

Hors ligne

 

#13 17-07-2009 03:25:31

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Cool !
Merci jay pour le test et l'activation du Wifi.
Du coup, j'ai rajouté cette première étape dans les scripts.
Comme ça commence à faire beaucoup de scripts, j'en ai fait une archive nommée om_freewifi_v0.1.tar.gz, avec un petit README.
Je l'ai mis sur dl.free.fr en attendant mieux : http://dl.free.fr/ubDj5gezK

Je suis preneur de vos retours

Hors ligne

 

#14 17-07-2009 08:01:34

piratebab
MoKorateur
Date d'inscription: 23-12-2008
Messages: 1060

Re: [SHR] Connexion automatique à un réseau FreeWifi

reste plus qu'a faire un petit package, et le mettre sur opkg.org!
Je suis certains que mes collègues sur ephone n'ont pas un truc pareil ....
C'est vrai, ce n'est pas trés visuel ou amusant, mais tellement pratique!


Lorsque tout le reste a échoué, lisez le mode d'emploi

Hors ligne

 

#15 17-07-2009 11:02:40

Toub
Addicted-Moko
Date d'inscription: 17-07-2009
Messages: 106

Re: [SHR] Connexion automatique à un réseau FreeWifi

En effet, c'est très intéressant tout ça.

Comme le disais kimaidou, il faut externaliser les paramètres afin de pouvoir l'adapter à d'autres réseaux wifi.

D'ailleurs, pour ceux qui ont accès aux 2 réseaux, le script devrait pouvoir se connecter aux 2.

Enfin, c'est une très bonne idée d'essayer de partager le package, et je pense qu'il serait mieux de renommer les fichiers en anglais, voir l'ensemble afin qu'il soit partagé par l'ensemble de la communauté (vous avez déjà essayé de modifier des scripts en slovaque, vous?).

Bon, je vais me faire taper dessus car on est sur un forum francophone, mais je donne juste mon avis.

Merci en tout cas pour tout ce travail!


Freerunner A7 - SHR unstable sur µSD (06/09/2009 full + upgrades)

Hors ligne

 

#16 17-07-2009 13:07:10

piratebab
MoKorateur
Date d'inscription: 23-12-2008
Messages: 1060

Re: [SHR] Connexion automatique à un réseau FreeWifi

Sans oublier de préciser sous quelle licence est distribué le script!
Comme d'ab, on commence à faire un petit truc perso dans son coin ça interesse du monde, ça prends de l'ampleur ...C'est ça le logiciel open source!
Il va bientôt falloir ouvrir un dépot SVN ou git!
Tiens, d'ailleurs, est ce que bearstech serait prêt à mettre en place ce genre de chose sur leur server ? Une sorte de forge francophone pour logiciels openmoko, liée à ce site ?


Lorsque tout le reste a échoué, lisez le mode d'emploi

Hors ligne

 

#17 17-07-2009 14:35:24

kimaidou
Addicted-Moko
Lieu: Montpellier
Date d'inscription: 08-10-2008
Messages: 343

Re: [SHR] Connexion automatique à un réseau FreeWifi

Puisque ce programme "sera" adapté pour tous les réseaux free, neuf et cie, pourquoi ne pas l'appeler "OpenWifi" (si cela n'existe pas déjà), ou OpenMokoWifi ?

Pour créé un paquet, il faudra mettre tous les scripts dans
/usr/bin/openmokowifi/
et toutes les configurations dans
/home/root/.openmokowifi/

Je vais tester neuf, et je vous dis si y a une possibilité de passer les données en GET


Kimaidou

Hors ligne

 

#18 17-07-2009 17:12:08

Epy
Addicted-Moko
Lieu: Saint Maximin la Sainte Beaume
Date d'inscription: 08-07-2008
Messages: 418
Site web

Re: [SHR] Connexion automatique à un réseau FreeWifi

piratebab a écrit:

reste plus qu'a faire un petit package, et le mettre sur opkg.org!

Tu devrais la mettre dans ta signature cette phrase big_smile J'ai l'impression que tu l'écris souvent big_smilebig_smile

Hors ligne

 

#19 17-07-2009 19:22:08

piratebab
MoKorateur
Date d'inscription: 23-12-2008
Messages: 1060

Re: [SHR] Connexion automatique à un réseau FreeWifi

C'est que je suis très frustré de ne pas avoir les compétences suffisante (et le temps) de développer mes propres applis !


Lorsque tout le reste a échoué, lisez le mode d'emploi

Hors ligne

 

#20 18-07-2009 11:51:27

Burn2
MoKorateur
Date d'inscription: 15-05-2009
Messages: 1782

Re: [SHR] Connexion automatique à un réseau FreeWifi

piratebab a écrit:

C'est que je suis très frustré de ne pas avoir les compétences suffisante (et le temps) de développer mes propres applis !

Idem pour moi sad


Fr A6 - Android 1.5
Aucun fix, A6 pur. (donc bug du buzz inside hmm )

Hors ligne

 

#21 19-07-2009 23:23:34

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Généraliser ce script pour NeufWifi me parait une bonne idée. Mais en regardant un peu, il me semble que ce ne sera pas exactement le même processus : il semble y avoir plusieurs champs à passer en plus du login/mot de passe, qu'il faut récupérer dans l'URL, et non dans le code HTML.
En tous cas, on ne pourra pas faire un script générique qui s'adapterait à n'importe quel réseau. Vu les différences, il faudrait se contenter d'un indicateur pour choisir FreeWifi ou NeufWifi.
Mais je n'ai pas de quoi tester sur NeufWifi : il me faudra de l'aide...
Je pense qu'il est encore bien trop tôt pour faire un package opkg avec ces scripts, ne serait-ce que parce qu'on n'a pas encore le nom. Et puis le lancement via terminal est vraiment pas terrible.
Pour le nom : OpenWifi, pourquoi pas, mais c'est peut-être un peu trop générique, je sais pas.
Traduire le code en anglais : pourquoi pas.
Pour la licence, je me suis vraiment pas penché sur la question. Pour l'instant, considérez que c'est en GPL, et n'hésitez pas à modifier le code (la gestion des erreurs est encore bancale par exemple. Et surtout il faudrait faire une IHM, ce qui devient + complexe pour moi)
A noter que cette application existe déjà sur iphone et android (mais c'est uniquement pour Free, je crois)
Pour le dépot SVN ou GIT, il me semble qu'il y a déjà http://projects.openmoko.org/

Ca fait pas mal de choses à faire pour peu de temps disponible!
Je ne pense pas pouvoir le faire seul : des volontaires pour donner un coup de main sur le code?

Hors ligne

 

#22 10-02-2010 16:29:15

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Pour ceux que ça intéresserait, j'ai adapté ces scripts pour la SHR testing actuelle.
A télécharger à l'adresse http://mossroy.free.fr/om_freewifi/om_f … 0.2.tar.gz

Pas d'évolution fonctionnelle : juste une mise à jour technique pour que cela fonctionne à nouveau sur les dernières versions de SHR.
Voir le README pour + d'infos

Hors ligne

 

#23 27-02-2010 22:49:25

mossroy
Addicted-Moko
Date d'inscription: 26-06-2009
Messages: 107

Re: [SHR] Connexion automatique à un réseau FreeWifi

Apparemment, Free a changé son mode de connexion à FreeWifi il y a peu. Il va falloir modifier le script.
J'essaierai de jeter un oeil quand j'aurai un peu de temps

Hors ligne

 

#24 16-03-2010 14:25:23

the_toon
Cool-Moko
Date d'inscription: 15-07-2008
Messages: 30

Re: [SHR] Connexion automatique à un réseau FreeWifi

Tant qu'à bien faire, il faudrait également vérifier que le certificat fourni par le site est bien le bon, sinon les "faux" FreeWifi qui ne manqueront pas de fleurir vont moissonner du mot de passe à tout va.

Et si veux te rendre un peu moins dépendant des modifications de la page web, tu peux te tourner vers l'extension "mechanize" de Python, qui permet d'interpréter le code de la page et de réagir en conséquence (en gros, c'est un navigateur programmable et muet). Donc tant que le nom de champs ne change pas, le programme reste valide.

Hors ligne

 

#25 20-03-2010 20:32:19

Grayswandir
Fun-Moko
Lieu: Antananarivo
Date d'inscription: 02-03-2009
Messages: 64

Re: [SHR] Connexion automatique à un réseau FreeWifi

Et avec "curl", ça peut p'tet être plus simple?


Grays

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.20
Traduction par FluxBB.fr

Hébergé par :
Bearstech