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
Autres évolutions souhaitables :
- auto reconnexion passé le délais du bail d'environ deux heures.
- interface GTK!
Cordialement.