Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

nombre réponses : 5

#0 Re : -1 »  [Utilitaire Freebox] Script pour télécharger sur votre V6 » Le 06/02/2013, à 17:56

dca77
Réponses : 168

Bonsoir,

J'ai également le même problème avec le script wifi et le NAS Synology depuis la mise à jour de la Freebox.

Je suis un newbie en prog mais je vais essayer de modifier le script pour que cela fonctionne de nouveau ce soir.

Merci en tous les cas pour ces précieuses informations.;)

#1 Re : -1 »  [Utilitaire Freebox] Script pour télécharger sur votre V6 » Le 06/02/2013, à 23:52

dca77
Réponses : 168

Pour ma part, j'ai réutilisé le script ci-dessus et l'ai un peu modifié car au départ j'avais une erreur de droit sur la variable "mktemp"

j'ai donc ceci :

#!/bin/sh

resultCurl="/volume1/opt/mktemp"

curl -S -d "login=freebox&passwd=Monmotdepasse" "http://mafreebox.freebox.fr/login.php" -v > /volume1/opt/mktemp
if grep -q "Set-Cookie:" $resultCurl; then
    echo "Login to Freebox succeeded!"
else
    echo "Login to Freebox failed!"
    rm $resultCurl > /dev/null 2>&1
    exit 1
fi

csrfToken=`grep "X-FBX-CSRF-Token" $resultCurl | cut -f 3 -d ' ' | sed "s/\r//"  `
fbxSid=`grep "FBXSID" $resultCurl | cut -f 3 -d ' ' | sed "s/FBXSID=//" | sed "s/;//" | sed "s/\r//" `

curl -s -b FBXSID=$fbxSid -D - -o /dev/null -e "http://mafreebox.freebox.fr/settings.php?page=wifi_conf" http://mafreebox.freebox.fr/wifi.cgi --data-urlencode "csrf_to$
if grep -q "HTTP/1.1 200 OK" $resultCurl; then
    echo "Setting Freebox wifi OFF succeeded!"
else
    echo "Setting Freebox wifi OFF failed!"
fi

echo "Logout to Freebox succeeded!"
rm $resultCurl > /dev/null 2>&1

exit 0

Le script va donc plus loin et on voit clairement que ça se connecte mais j'ai ensuite une erreur...

Pour information je n'utilise pas le port 80 pour la connexion à l'interface depuis l’extérieur mais ici c'est l'URL locale qui est utilisée. Je ne pense donc pas que le problème vienne de là.

Voici ce que j'ai suite à l’exécution du script


Homeserver> sh fbwifinew.sh
: not foundh: line 2:
: not foundh: line 4:
* About to connect() to mafreebox.freebox.fr port 80 (#0)
*   Trying 212.27.38.253...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* connected
* Connected to mafreebox.freebox.fr (212.27.38.253) port 80 (#0)
> POST /login.php HTTP/1.1
> User-Agent: curl/7.26.0-DEV
> Host: mafreebox.freebox.fr
> Accept: */*
> Content-Length: 26
> Content-Type: application/x-www-form-urlencoded
>
} [data not shown]
* upload completely sent off: 26 out of 26 bytes
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 06 Feb 2013 20:40:18 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
<
{ [data not shown]
100  1686    0  1660  100    26  51369    804 --:--:-- --:--:-- --:--:-- 57241
* Connection #0 to host mafreebox.freebox.fr left intact
:80etaddrinfo(3) failed for
' Couldn't resolve host '
* Closing connection #1
'url: (6) Couldn't resolve host '
* Closing connection #0
fbwifinew.sh: line 28: syntax error: unexpected end of file (expecting "then")

#2 Re : -1 »  [Utilitaire Freebox] Script pour ON/OFF le WiFi sur V6 (CSRF) » Le 07/02/2013, à 15:06

dca77
Réponses : 10

Merci pour l'ouverture du sujet, j'ai avancé un peu entre temps, en modifiant un peu le script, j'obtiens les bonnes valeurs pour FBXID et CSRFTOKEN. mais je n'arrive pas à les réutiliser, surement un problème avec la déclaration de mes variables.

Voici le script actuel :

#!/bin/sh

$fbxSid=`grep "FBXSID" "/volume1/opt/mktemp" | cut -f 2 -d ' ' | sed "s/FBXSID=//" | sed "s/;//" | sed "s/\r//"`
$csrfToken=`grep "X-FBX-CSRF-Token" "/volume1/opt/mktemp" | cut -f 2 -d ' '`


curl -s -D - -o /dev/null http://mafreebox.freebox.fr/login.php -d 'login=freebox&passwd=mon_mot_de_passe > /volume1/opt/mktemp

curl -s -b FBXSID=$fbxSid -D - -o /dev/null -e "http://mafreebox.freebox.fr/settings.php?page=wifi_conf" http://mafreebox.freebox.fr/wifi.cgi --data-urlencode "csrf_token=$csrfToken" -d "channel=11&ht_mode=disabled&method=wifi.ap_params_set&config=Valider" -H "X-Requested-With: XMLHttpRequest" -H "Accept: application/json, text/javascript, */*" 

Donc si j'affiche le contenu du fichier j'ai bien les valeurs que je souhaite récupérer :

 Homeserver> cat mktemp
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Thu, 07 Feb 2013 13:40:02 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: FBXSID="0telHGZMPRcjDcwkAK5L+m34ZY02lnE/Klr6Y07HGxJ/jFQJEPOh8+Dz1VTXJmJb"; Max-Age=86400; HTTPOnly
X-FBX-CSRF-Token: DEWSkAUs4Zfq2+9Xi1TWXUVLEYDGH7KOIGXYDpljseX+ypwj9SfolNjTSgVRGV/L
Location: /settings.php

et quand le script se lance bien que j'ai une erreur les valeurs sont les bonnes :

 sh test.sh
test.sh: line 5: syntax error: unexpected word (expecting ")")
Homeserver> nano test.sh
Homeserver> sh test.sh
test.sh: line 5: ="0telHGZMPRcjDcwkAK5L+m34ZY02lnE/Kl6Y07HGxJ/jFQJEPOh8+Dz1VTXJmJb": not found
: not foundne 6: =DEWSkAUs4Zfq2+9Xi1TWXUVLEYDGH7KOIGXYDpljseX+ypwj9SfolNjTSgVRGV/L
HTTP/1.1 403 Forbidden
Server: nginx
Date: Thu, 07 Feb 2013 13:40:02 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
X-Reason: please log-in

Quand je fais les grep un par un ils fonctionnent bien  :

Homeserver> grep "X-FBX-CSRF-Token" "/volume1/opt/mktemp" | cut -f 2 -d ' '
a8IrV3aybHghQ2nuzcro/Jz5nHVCJh/ElsL6Sm/Gdivp69g6EH8AfhCVq5vlXNZI
Homeserver> grep "FBXSID" "/volume1/opt/mktemp" | cut -f 2 -d ' ' | sed "s/FBXSID=//" | sed "s/;//" | sed "s/\r//"
"CIL7fGQ1QljVwfgNOgcRZB3NeBWPpCk6y0VgoTYB2hlJOOokcZZaadwiw7dipwoC"
Homeserver>
 

et pour finir si je mets à la main les valeurs récupérées précédemment par les grep, cela fonctionne bien et le wifi se désactive.

Sorry pour le roman, si vous avez des idées je suis preneur.

#3 Re : -1 »  [Utilitaire Freebox] Script pour ON/OFF le WiFi sur V6 (CSRF) » Le 08/02/2013, à 17:39

dca77
Réponses : 10

Bon je tombe sur la même chose que toi, 403 Forbidden...

J'ai fait un petit echo en fin de script et mes valeurs de FBXID et CSRFTOKEN sont bonnes pourtant :

Homeserver> sh test.sh
HTTP/1.1 403 Forbidden
Server: nginx
Date: Fri, 08 Feb 2013 16:32:42 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

1dpKsPPrUm+91cK2u4GOi0f44dLnp4RwgvShOsWHjkSoMZFTixn+Weuz4KUOO8cH
o+bk9jPDOlnj2q9HxfPywSfdK+2uZMQgDTXQVJ9ROcV2JisFgAfibYIBADMvwoAM

et les mêmes valeurs dans le fichier tmp :

Homeserver> cat mktemp
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Fri, 08 Feb 2013 16:32:42 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: FBXSID="1dpKsPPrUm+91cK2u4GOi0f44dLnp4RwgvShOsWHjkSoMZFTixn+Weuz4KUOO8cH"; Max-Age=86400; HTTPOnly
X-FBX-CSRF-Token: o+bk9jPDOlnj2q9HxfPywSfdK+2uZMQgDTXQVJ9ROcV2JisFgAfibYIBADMvwoAM
Location: /settings.php

Donc les valeurs sont les bonnes, peut-être un soucis avec la ligne qui utilise ces valeurs mais là ça dépasse mes compétences dans le domaine.

#4 Re : -1 »  [Utilitaire Freebox] Script pour ON/OFF le WiFi sur V6 (CSRF) » Le 08/02/2013, à 18:56

dca77
Réponses : 10

Tu sais s'il l'a lancé depuis un Syno ou pas ? je suspecte nos variables d'être mal interprétés/appelées par le Syno car à la main cela fonctionne.

J'ai ouvert  ici  un sujet sur le forum Syno à l'aide duquel j'ai bien avancé mais là je bloque.