permettez, je fais que passer

Tags:
Add comments

Ç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.

2 Responses to “permettez, je fais que passer”

  1. Ron Says:

    haha merci bien ca peut être bien pratique :)

  2. Matthieu Says:

    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 …

Leave a Reply

WP Theme & Icons based on GlossyBlue by N.Design Studio
Banner from www.trynthlas.com
Entries RSS Comments RSS Log in
Performance Optimization WordPress Plugins by W3 EDGE