Last active
April 13, 2018 17:17
-
-
Save maelvls/5021908 to your computer and use it in GitHub Desktop.
Petit script pour tous les gens se connectant en filaire (et même en wifi) aux réseaux du CROUS à Toulouse. Gaffe à votre mot de passe, car là il est en clair !
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# connect.sh | |
# | |
# Petit script pour se connecter aux servs du CROUS à la cité U Rangueil | |
# Auteur: [email protected] | |
# Mis à jour le 9.2.2013 | |
# Version 0.2 | |
# Attention : | |
# - connection CURL non SSL à cause du certificat foireux | |
# - mot de passe en clair | |
# | |
# Amélioration possible : ajouter l'option -d qui déconnecterait | |
# Comment ca marche : | |
# Mettez après user= votre identifiant CROUS ([email protected] par exemple) | |
user="" | |
# Ensuite votre mot de passe CROUS | |
passwd="" | |
# Analyse des parametres | |
v=0 | |
while [ "x$1" != "x" ]; do | |
case "$1" in | |
-v | --verbose) # Mode verbose | |
v=1; shift | |
;; | |
-va | --verboseall) # afficher le retour du curl | |
v=2; shift | |
;; | |
-h | --help) # de l'aide | |
echo "Aide: regardez a l'interieur du script, c'est ecrit" | |
exit 0 | |
;; | |
esac | |
done | |
# Options avancees | |
useragent="Firefox/1.6.10" | |
tempsLong=300 # Rafraichissement en seconde en cas de réussite | |
# Sur cette version on quitte au lieu de rafraichir | |
tempsCourt=5 # Rafraichissement en cas d'echec | |
logIntoCaptivePort() { | |
# On envoi le formulaire POST en --insecure car le certificat est mauvais sur les serveurs du CROUS | |
# Ensuite on vérifie que ce qui est renvoyé contienne un morceau du script de déconnexion | |
result=$( | |
curl -m 10 --connect-timeout 5 --user-agent "$useragent" --insecure $1 -d auth_user="$user" -d auth_pass="$passwd" -d accept="Continue" -v 2> /dev/null | |
) | |
if [ $? -ne 0 ]; then | |
if [ "$v" -ge 1 ]; then echo "Impossible de se connecter à $1 (unreachable)" >&2; fi | |
return 1 | |
fi | |
if [ $v -ge 2 ]; then echo $result; fi # Le mode ultra-verbose | |
echo $result | grep 'INPUT NAME="logout_id"'>/dev/null 2>&1 | |
if [ $? -eq 0 ]; then # Si ca marche | |
if [ $v -ge 1 ]; then echo "Connecté sur $1. Rafraichissement dans $tempsLong s"; fi | |
return 0 | |
else # Si ca ne retourne pas le bon | |
if [ $v -ge 1 ]; then echo "Erreur: Impossible de s'identifier sur $1" >&2; fi | |
return 1 | |
fi | |
} | |
#Authentification sur le portail captif | |
multipleConnect() | |
{ | |
if logIntoCaptivePort https://portailpf8.crous.lan:8001; then return 0; fi | |
if logIntoCaptivePort 172.17.144.2:8000; then return 0; fi | |
if logIntoCaptivePort 172.17.160.2:8000; then return 0; fi | |
echo "Impossible de se connecter. Nouvel essai dans $tempsCourt s" >&2 | |
return 1 | |
} | |
reloadIn=0 | |
while sleep $reloadIn | |
do | |
if ! multipleConnect; then reloadIn=$tempsCourt; | |
else necho "Connecté au CROUS"; exit 0; fi | |
done | |
exit 0 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bonjour,
je me suis permis de reprendre votre script pour le réactualiser avec les nouvelles adresses IP ainsi que d'ajouter une intégration de retour graphique:
Lien: ( https://gist.github.com/Erim32/d67fb756e21630f7e33ffdffbb1c40d3 )
En espérant que cela pourra être utile à quelqu'un.