Ça va faire 3 semaines que j’attend de passer l’étape 1 chez Free. C’est pas comme si j’étais surpris, à chaque déménagement, c’est l’enfer. En fait, s’ils n’étaient pas les seuls à proposer une IP fixe à ce prix, ça fait belle lurette que je les aurais envoyé chier. Bref, en attendant, je squatte un access point en toute légalité puisqu’il s’agit d’un hotspot Neuf Wifi FON que j’ai parfaitement le droit d’utiliser en tant que Fonero. Le Link Quality est pas mauvais, ~30%, mais deux aspects sont ennuyeux: ils n’autorisent que les ports http/s, SMTP et SIP, et surtout, on est obligé de se re-authentifier toutes les deux heures sur un portail captif.
Pour le premier point, un simple VPN sur le port 443 me permet d’utiliser ssh. Pour le second, c’est un peu plus sioux. Voici, pour ceux d’entre vous qui rencontreraient le même type de désagrément, un petit bout de script permettant d’automatiser l’enregistrement sur le portail captif Neuf/FON à l’aide de curl :
#!/bin/sh
url="https://hotspotneufbox.neuf.fr/d3/nb4_crypt.php"
okmatch="licitations"
login="identifiant%40fon" # %40 == @ url encodé
password="password_fon"
# quel que soit le site visité, on sera redirigé vers le
# portail captif qui génerera un token. L'utilisation du switch
# -L permet de suivre la redirection de type 302
challenge=`curl -L http://www.google.com|grep name=\"challenge|sed -r 's/.*value=\"([0-9a-z]+)\".*/\1/'`
echo "challenge: ${challenge}"
# la phase 2 renvoie une réponse au token
response=`curl -L -d "username=${login}&password=${password}&cond=on&accessType=fon&nb4=https://hotspotneufbox.neuf.fr/d3/nb4_crypt.php&challenge=${challenge}" ${url}|grep response=|sed -r 's/.*response=([0-9a-z]+).*/\1/'`
echo "reponse: ${response}"
# enfin, un refresh renvoie sur une page qui attend la
# réponse précedente pour activer la connexion
final=`curl -L "http://192.168.2.1:3990/logon?username=fon/${login}&response=${response}&uamip=192.168.2.1&userurl=http%3A%2F%2Fwww.fon.com%2Ffr%2Flanding%2Ffoneroneufbox%3Bfon%3B%3B"|grep ${okmatch}`
if [ ! -z "${final}" ];then
echo "connected"
else
echo "connection failed"
fi
Un petit while [ 1 ] muni de quelques conditions permet de garder un lien à peu près stable.
April 20th, 2008 at 11:00 am
haha merci bien ca peut être bien pratique :)
August 22nd, 2008 at 6:38 pm
Hello, et merci pour ce petit script…
J’ai essayé de le mettre en oeuvre sous Ubuntu, mais j’ai des erreurs à l’exécution… N’étant pas trop un spécialiste du shell, je me demandais si une âme charitable pourrais m’aider. Je peux poster les erreurs ici ou ailleurs …