Script de connexion pour WiFi Publique

Post Reply
Message
Author
User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

Script de connexion pour WiFi Publique

#1 Post by Médor »

Bonsoir,

Voici un script adapté de ce dernier qui est destiné à automatiser l'authentification lorsqu'on se connecte à divers réseaux WiFi publiques demandant à passer par une page de login. Plus besoin d'ouvrir un navigateur et de remplir le formulaire.

Surtout si votre navigateur ultra léger préféré est incapable d'ouvrir la page https de connexion et/ou sont contenu...
Ou pour simplement ouvrir une application comme Skype, aMSN, etc.
Se rappeler toutefois que seul les ports http et https sont disponnibles sur ces réseaux.

Ce dernier couvre les réseaux de Free WiFi, Neuf WiFi & SFR WiFi Public, testé ici une journée entière sur SFR

il faut cepandant y mettre vos identifiants pour le(s) réseau(x) convoité(s) pour pouvoir être connecté ;)

Et forcement en premier, avoir déjà obtenu le statu connecté sur le bon réseau avec Pwirless2 par exemple.

Auth WiFi Public (à enregister en ISO8859 pour les accents dans yaf-splash!) :

Code: Select all

#!/bin/bash
#original script:
#http://www.aduf.org/viewtopic.php?t=220363&start=0&postdays=0&postorder=asc&highlight=

yaf-splash -display :0 -margin 2 -bg orange -placement center -font "9x15B" -outline 0 -timeout 10 -text "Authentification en cours, veuillez patienter..." &

testpage()
{
   page=$(curl -s -k -L "http://www.google.com")
   echo "$page" | grep -q "<title>Google</title>" && \
      echo "connected" &&
      exit 0
}

freewifi()
{
   testpage

   local url="https://wifi.Free.fr/Auth"
   local okmatch="CONNEXION AU SERVICE REUSSIE"
   local username="0123456789"
   local password="password_free"

   curl -s -F "login=${username}" -F "password=${password}" "${url}" | \
      grep -q "${okmatch}" && \
      success="yes"
}

neufwifi()
{
   testpage

   local challenge=$(echo "$page" | \
      sed -nr 's/.*name=\"challenge.*value=\"([0-9a-z]+)\".*/\1/p')

   test -z "${challenge}" && \
      echo "not the login page" && \
      exit 1

   local url="https://hotspot.neuf.fr/nb4_crypt.php"
   local okmatch="licitations"
   local username="0123456789"
   local password="password_neuf"

   response=$(curl -s -k -L -d "username=${username}&password=${password}&cond=on&accessType=neuf&nb4=${url}&challenge=${challenge}" "${url}" | \
      sed -nr 's/.*response=([0-9a-z]+).*/\1/p')

   curl -s -k -L "http://192.168.2.1:3990/logon?username=ssowifi.neuf.fr/${username}&response=${response}&uamip=192.168.2.1&userurl=http%3A%2F%2Fwww.fon.com%2Ffr%2Flanding%2Ffoneroneufbox%3Bfon%3B%3B&lang=fr&ARCHI" | \
      grep -q "${okmatch}" && \
      success="yes"
}

#changer ici wlan0 par le nom de votre interface wifi (voir ifconfig)
essid=$(iwgetid | grep "wlan0" | cut -d : -f 2)
case "${essid}" in
   ('"FreeWifi"') freewifi ;;
   ('"Neuf WiFi"'|'"SFR WiFi Public"') neufwifi ;;
   (*) echo "unknown network ${essid}" ; exit 0 ;;
esac

test -n "${success}" && \
   yaf-splash -display :0 -margin 2 -bg lightgreen -placement center -font "9x15B" -outline 0 -timeout 3 -text "${essid} : authentification  réussie!" && \
   exit 0

exit 1 
Quelqu'un aurait-il d'autres améliorations à apporter?
Autres évolutions souhaitables :
- auto reconnexion passé le délais du bail d'environ deux heures.
- interface GTK!

Cordialement.

User avatar
ASRI éducation
Posts: 3197
Joined: Sat 09 May 2009, 12:10
Location: France
Contact:

#2 Post by ASRI éducation »

Excellente idée ce script, effectivement un GUI en gtk serait idéal.
à enregister en ISO8859 pour les accents dans yaf-splash
Geany ne me propose pas cette norme.
Tu fais comment ?

Cordialement,

User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

#3 Post by Médor »

Bonsoir,

Ici j'utilise leafpad, mais je sais que c'est possible sur Geany en rechargeant le texte il me semble, voir aussi avec Abiword.

Cordialement.

User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

#4 Post by Médor »

Ci-joint le fichier...
Humm j'avais posté tout l'article ;)
Attachments
AuthWifi-Public.gz
(1004 Bytes) Downloaded 448 times

User avatar
mpierrat25
Posts: 113
Joined: Thu 23 Aug 2007, 20:56
Location: France (25)

çà marche en Puppy 5.11 ?

#5 Post by mpierrat25 »

Je suis intéressé par ce script, mais je doute qu'il marche sous Puppy 5.11 à cause de yaf_plof

Y'a pas le même avec xmessage ?

A+
mp

User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

#6 Post by Médor »

Bonsoir,

Dans les puppy 5 en principe yaf-splash s'il n'est pas disponible est remplacé par un lien pointant sur gtk-splash (BK).
(gtk-splash n'implémente pas toutes les fonctions de yaf-splash).
Sous réserve de syntaxe le script devrai fonctionner...

Les deux appels à yaf-splash peuvent être remplacé par xmessage, gxmessage, xcow-say...
Reste à trouver un compromis commun suivant les différentes versions de puppy en tenant compte de nos problèmes d'accents récurrents : ISO-8859-1/UFT-8.

Cordialement.

User avatar
mpierrat25
Posts: 113
Joined: Thu 23 Aug 2007, 20:56
Location: France (25)

yaf

#7 Post by mpierrat25 »

Merci Médor j'vais esaayer un peu tout çà
Cordialemnt,
mp

User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

#8 Post by Médor »

Finalement,

le fichier yaf-splash originel (20-07-2007) présent depuis les puppy 3 jusqu'à 4.2 à été substitué ensuite par gtkdialog-splash renommé en yaf-splash...

Voir ce sujet et la dernière version par shinobar de gtkdialog-splash-20110104 à la fin de cette même page.

Donc faire attention après édition du script à l'enregistrer dans le bon jeu de caractères.

Cordialement.

User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

#9 Post by Médor »

Bonjour,

Voici une version 2, qui affiche à l'écran un peu plus de messages, notamment l'état positif du service si l'on relance le script après l'authentification.

Actuellement il reste un souci de non affichage d'un résultat négatif lors d'un renouvellement du bail.
La première tentative peut se terminer sans rien afficher, un second ou plusieurs lancements sont parfois nécessaires (affichage en rouge du message : "Ce n'est pas la bonne page de login") avant de relancer et d'obtenir une nouvelle authentification.

Le serveur neuf ou sfr fait souvent la sourde oreille dans le créneau horaire 20h / 22h, pour les tests éviter ce créneau (idem avec un navigateur classique mais il s'en sort un peu mieux)...

Les codeurs en bash script sont les bienvenus pour finaliser le tout!
Le but recherché étant d'afficher correctement l'ensemble des messages sans passer par le lancement du script dans la Console : juste à cliquer sur une icône.

Autre curiosité avec le programme yaf-splash originel :
Il ne supporte pas d'être renommé avec une extension point bak, old, orig, ...
Par contre il fonctionne parfaitement renommé par exemple en : yaf-splash-orig .
Bien évidemment il faut que le script qui l'utilise ai bien été configuré pour le nouveau nom de fichier.

Quant à la dernière version de sinobar (incluant la fonction "-font") un message un peu long s'affiche sur deux lignes à la place d'une seule avec une taille démesurée.
Si vous utilisez ce "yaf-splahs" alias gtkdialog-splash soit retirer tous les [-font "9x15B"] dans le script ou les replacer par "9x14B"...


Cordialement.
Attachments
AuthWiFi-public.gz
(1.12 KiB) Downloaded 420 times

User avatar
mpierrat25
Posts: 113
Joined: Thu 23 Aug 2007, 20:56
Location: France (25)

version 2

#10 Post by mpierrat25 »

Boff çà démarre mal : erreur à la 1ère ligne !

çà s'affiche .. et çà plante :

Code: Select all

# ./AuthWiFi-public
EXIT="Exit on timeout"

** ERROR **: gtkdialog: Error in line 6, near token 'string': syntax error

aborting...
/usr/bin/yaf-splash: line 255:  1242 Aborted                 /tmp/yaf-splash --class="gtkdialog-splash" --program=GTKDIALOG_SPLASH --center
# 

Y a-t-il une syntaxe à modifier ou est-ce un problème d'environement ?

User avatar
Médor
Posts: 1754
Joined: Sat 24 Jul 2010, 20:04
Location: France

#11 Post by Médor »

Bonsoir,

Il semble que le "yaf-splash" utilisé n'apprécie pas quelque chose...

J'ai testé ici avec le yaf-splash original, lui n'accepte que des messages codé en ISO-8859-*

Les versions 'gtk'-splash comme toutes les applications en gtk n'acceptent que des messages en UFT-8.

Le premier message "Authentification en cours, veuillez patienter..." ne comportant aucun caractère accentué (codé avec 2 bits par caractère accentué en UFT-8 ) lui seul s'affiche quelque soit le codage utilisé...

Donc déjà enregistrer le script dans ce cas en UFT-8.
Remplacer si besoin le nom de l'interface WiFi "wlan0" par défaut...

Ci-dessous le script en ligne de commande uniquement, à lancer dans la Console.

Cordialement.
Attachments
AutoWiFiConnect.sh.gz
(954 Bytes) Downloaded 455 times

Post Reply