tahitibub Posté(e) le 20 mai 2013 Partager Posté(e) le 20 mai 2013 Bonjour, DynDNS vient de changer sa politique pour les clients gratuits : désormais il faut se connecter au moins une fois par mois sous peine de suppression du compte. Quelqu'un a déjà créé un script bash pour automatiser cette connexion. Question : comment adapter et faire fonctionner ce script sur SYNOLOGY ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
sonson Posté(e) le 20 mai 2013 Partager Posté(e) le 20 mai 2013 Bravo Dyndns !!! Encore une societe qui passe d'un compte limite et gratuit à "tout faire pour passer le client en payant" ! Se connecter à leur site une fois par mois et non plus par la mise à jour du client dyndns : Comment virer les clients gratuits. Heureusement qu'il reste d'autres fournisseurs de service gratuit comme no-ip ou changeip ! Bon vent à Dyndns mais sans moi ! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Foksadure Posté(e) le 20 mai 2013 Partager Posté(e) le 20 mai 2013 (modifié) les clients gratuits Bel oxymore. Apparemment, il est possible de créer une tâche planifiée dans le... planificateur de tâches pour exécuter le script (merci pour le lien d'ailleurs). http://forum.synology.com/enu/viewtopic.php?f=226&t=65363 Je m'y attelle également, pour continuer à bénéficier de la fonctionnalité de contrôle parental Internet Guide de Dyn, qui m'allait très bien comme ça. On imagine que Dyn fait déjà bon usage des requêtes effectuées via ses serveurs DNS pour se payer. Edit : avancement des travaux. Une version du script qui fonctionne lorsque lancée en telnet via le compte root : #!/bin/sh LOGIN="lelogindefoksaduresurdyn.com" PASSWORD="lemotdepassedefoksaduresurdyn.com" COOKIES="dynsdns.cookies.txt" #UA="Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/0.0.0 (KHTML, like Gecko) Version/0.0.0 Safari/0.0.0" LOGINURL="https://account.dyn.com/" POSTURL="$LOGINURL" CHKURL="https://account.dyn.com/" DST="-" || DST="/dev/null" # Ensure no broken session caching... [[ -s "$COOKIES" ]] && rm "$COOKIES" echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..." curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A "$UA" --url "$LOGINURL" echo >&2 "DEBUG: Fetching UID..." VALUE="$( curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep -m 1 "multiform" | cut -d"'" -f 6 )" echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..." curl -b $COOKIES -c $COOKIES -d "username=$LOGIN" -d "password=$PASSWORD" -d "iov_id" -d "multiform=$VALUE" -e "$LOGINURL" -kso "$DST" -A "$UA" --url "$POSTURL" echo >&2 "DEBUG: Response received - verifying result..." curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" --url "$CHKURL" | grep -q "<span>Welcome <b>$LOGIN</b></span>" && echo "Login successful" || echo >&2 "Login failed" On récupère bien le fichier dynsdns.cookies.txt dans le dossier du script. Par contre, avec le planificateur de tâches, script toujours lancé en root via la commande "sh /volume1/scripts/dyndns-login.sh" dans l'interface de configuration de la tâche, cela ne fonctionne pas. Si on regarde l'état des tâches planifiées sur le syno : DiskStation> cd / DiskStation> cd /temp DiskStation> synoschedtask --get ID: [2] Name: [dyn-login] State: [enabled] Owner: [root] Type: [weekly] Start date: [2013/5/20] Days of week: [Sat] Run time: [20]:[30] Command: [sh /volume1/scripts/dyndns-login.sh] Last Run Time: Mon May 20 16:11:30 2013 Status: [Error(2)] Je soupçonne un problème de chemin dans le script, en supposant que le code Status corresponde à la liste des codes retours de cron. Bref, mes maigres compétences m'empêchent d'aller plus loin. Help ! Modifié le 20 mai 2013 par Foksadure 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 22 mai 2013 Partager Posté(e) le 22 mai 2013 Salut Foksadure Tout d'abord merci pour ton script, c'est effectivement une très bonne idée pour éviter de voir son compte dyndns supprimé. Voici les quelques modifications que j'ai apporté à ton scripts (peut être que tes soucis ne viennent pas de là mais bon ..) et il fonctionne parfaitement dans mon cas par l'appel de la tâche planifiée que j'ai crée : synoschedtask --get ID: [3] Name: [dyndns] State: [enabled] Owner: [root] Type: [daily] Start date: [0/0/0] Run time: [17]:[30] Command: [/volume1/homes/user/dyndns-login.sh >/root/dyndns-login.log 2>&1] Last Run Time: Wed May 22 17:30:02 2013 Status: [Success] J'ai tout d'abord mis un chemin complet vers /tmp/ pour le fichier de cookies et j'ai aussi mis le chemin complet des commandes appelés dans ton script : #!/bin/sh LOGIN="lelogindefoksaduresurdyn.com" PASSWORD="lemotdepassedefoksaduresurdyn.com" COOKIES="/tmp/dynsdns.cookies.txt" LOGINURL="https://account.dyn.com/" POSTURL="$LOGINURL" CHKURL="https://account.dyn.com/" DST="-" || DST="/dev/null" # Ensure no broken session caching... [[ -s "$COOKIES" ]] && rm "$COOKIES" echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..." /usr/syno/bin/curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A "$UA" --url "$LOGINURL" echo >&2 "DEBUG: Fetching UID..." VALUE="$( /usr/syno/bin/curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep -m 1 "multiform" | cut -d"'" -f 6 )" echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..." /usr/syno/bin/curl -b $COOKIES -c $COOKIES -d "username=$LOGIN" -d "password=$PASSWORD" -d "iov_id" -d "multiform=$VALUE" -e "$LOGINURL" -kso "$DST" -A "$UA" --url "$POSTURL" echo >&2 "DEBUG: Response received - verifying result..." /usr/syno/bin/curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" --url "$CHKURL" | grep -q "<span>Welcome <b>$LOGIN</b></span>" && echo "Login successful" || echo >&2 "Login failed" Ensuite, afin de récupérer les potentielles erreurs lors de l'exécution du script dans la crontab, j'ai mis la ligne de commande suivante dans la partie "Script défini par l'utilisateur " du planificateur de tâches : /volume1/homes/user/dyndns-login.sh >/root/dyndns-login.log 2>&1 ce qui permet d'avoir le retour du script dans le fichier de log "/root/dyndns-login.log" J'espère t'avoir aidé autant que tu nous a aidé pour la création de ton script ;-) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Foksadure Posté(e) le 22 mai 2013 Partager Posté(e) le 22 mai 2013 (modifié) Bonjour, Ce script n'est pas le mien mais celui que Stuart SHELDON a créé et posté sur son blog, et que tahitibub nous a linké dans son post, puisqu'il est l'auteur de ce fil. En clair : http://blog.stuart.shelton.me/archives/1024 Ceci rendu à César, merci loli71 pour ces modifications et pour avoir pris le temps de nous les détailler : c'est exactement ce que je voulais obtenir en plus (un fichier de log). Edit : Ça marche ! Modifié le 22 mai 2013 par Foksadure 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
sonson Posté(e) le 23 mai 2013 Partager Posté(e) le 23 mai 2013 Merci à vous pour nous aider !! j'ai essayé mais j'ai à priori un problème de login. Voici un cat du fichier log : DEBUG: Fetching initial headers to pre-load cookies... HTTP/1.1 200 OK Date: Thu, 23 May 2013 06:41:08 GMT Server: Apache Cache-control: no-cache Content-Type: text/html; charset=ISO-8859-1 Expires: Thu, 23 May 2013 06:41:08 GMT Set-Cookie: id=JVnFw29ptwywee+klWPLagoCpWw; domain=account.dyn.com; path=/; expires=Wed, 21-Aug-2013 06:41:08 GMT Set-Cookie: s1=q3c8tlw7j2q67k1g; domain=.dyn.com; path=/ Set-Cookie: s2=9_%3d2zvv71skt4c6%3d; domain=account.dyn.com; path=/; secure Accept-Ranges: none Vary: Accept-Encoding DEBUG: Fetching UID... DEBUG: Read UID as '7139F84C6181229A3C7AA8F85C11BF5FA8' - posting data... <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>302 Found</TITLE> </HEAD><BODY> <H1>Found</H1> The document has moved <A HREF="https://account.dyn.com/">here</A>.<P> </BODY></HTML> DEBUG: Response received - verifying result... Login failed Ca vous dit quelquechose ??? Quand je me connecte chez dyndns, ce n'est pas sur https://account.dyn.com/ mais sur https://account.dyn.com/entrance/ pour avoir la fenetre de login. Mais j'ai essayé les deux adresses dans le script sans résultat. J'ai aussi fait un CHMOD u+x dyn... pour le rendre exécutable. Le script est dans /volume1/homes/admin. J'ai raté quelquechose ? Merci 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
pat77 Posté(e) le 3 juin 2013 Partager Posté(e) le 3 juin 2013 bonjour, ça m'interesse également de mettre en place ce script mais j'avoue que je ne comprend pas bien ce qu'il faut faire exactement. quelqu'un peut il m'expliquer étape par étape la procédure car pour l'instant, c'est du chinois pour moi. à quel moment, je met mon pass et login? merci. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
pat77 Posté(e) le 4 juin 2013 Partager Posté(e) le 4 juin 2013 salut, j'ai mis à jour mon syno et j'ai maintenant le menu planification de taches mais je n'arrive pas à faire fonctionner ce script, il me faudrait un peu plus d'infos sur la façon de faire. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
artrox Posté(e) le 5 juin 2013 Partager Posté(e) le 5 juin 2013 Hello PAT77, Tout d'abord merci aux différents contributeurs, ça marche bien J'ai repris le script du site http://blog.stuart.shelton.me/archives/1024 Ajouter le chemin absolu pour la variable COOKIES Dans un premier temps tu testes en ligne de commande le script sh /volume1/scripts/dyndns-login.sh ( endroit ou se trouve ton script ) Ne pas oublier de rendre ton script exécutable avec la commande du type : chmod +x nom_du_script @]+ 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 5 juin 2013 Partager Posté(e) le 5 juin 2013 Merci à vous pour nous aider !! j'ai essayé mais j'ai à priori un problème de login. Voici un cat du fichier log : DEBUG: Fetching initial headers to pre-load cookies... HTTP/1.1 200 OK Date: Thu, 23 May 2013 06:41:08 GMT Server: Apache Cache-control: no-cache Content-Type: text/html; charset=ISO-8859-1 Expires: Thu, 23 May 2013 06:41:08 GMT Set-Cookie: id=JVnFw29ptwywee+klWPLagoCpWw; domain=account.dyn.com; path=/; expires=Wed, 21-Aug-2013 06:41:08 GMT Set-Cookie: s1=q3c8tlw7j2q67k1g; domain=.dyn.com; path=/ Set-Cookie: s2=9_%3d2zvv71skt4c6%3d; domain=account.dyn.com; path=/; secure Accept-Ranges: none Vary: Accept-Encoding DEBUG: Fetching UID... DEBUG: Read UID as '7139F84C6181229A3C7AA8F85C11BF5FA8' - posting data... <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>302 Found</TITLE> </HEAD><BODY> <H1>Found</H1> The document has moved <A HREF="https://account.dyn.com/">here</A>.<P> </BODY></HTML> DEBUG: Response received - verifying result... Login failed Ca vous dit quelquechose ??? Quand je me connecte chez dyndns, ce n'est pas sur https://account.dyn.com/ mais sur https://account.dyn.com/entrance/ pour avoir la fenetre de login. Mais j'ai essayé les deux adresses dans le script sans résultat. J'ai aussi fait un CHMOD u+x dyn... pour le rendre exécutable. Le script est dans /volume1/homes/admin. J'ai raté quelquechose ? Merci Pour ma part, j'ai bien le Login successful malgrès la redirection de page : DEBUG: Fetching initial headers to pre-load cookies... HTTP/1.1 200 OK Date: Wed, 05 Jun 2013 09:08:03 GMT Server: Apache Cache-control: no-cache Content-Type: text/html; charset=ISO-8859-1 Expires: Wed, 05 Jun 2013 09:08:03 GMT Set-Cookie: id=UHwlDqRUAHGk8k; domain=account.dyn.com; path=/; expires=Tue, 03-Sep-2013 09:08:03 GMT Set-Cookie: s1=f5a713puh3pv; domain=.dyn.com; path=/ Set-Cookie: s2=rzd0igu%3du; domain=account.dyn.com; path=/; secure Accept-Ranges: none Vary: Accept-Encoding DEBUG: Fetching UID... DEBUG: Read UID as '9020D96FFD49976E8E6D2' - posting data... <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>302 Found</TITLE> </HEAD><BODY> <H1>Found</H1> The document has moved <A HREF="https://account.dyn.com/">here</A>.<P> </BODY></HTML> DEBUG: Response received - verifying result... Login successful Je pense donc que tu dois avoir un problème de définition de LOGIN et PASSWORD dans le script, si vous avez des caractères spéciaux dans votre mot de passe, pensez bien à utiliser les simple quotes pour encadrer le mot de passe plutôt que les doubles quotes : Par exemple : PASSWORD='M$N_M@tdePASSE!' au lieu de PASSWORD="M$N_M@tdePASSE!" 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
artrox Posté(e) le 5 juin 2013 Partager Posté(e) le 5 juin 2013 (modifié) Hello, 2 petites modifs pour avoir un fichier de log plus propre : Ajout de la date et de l'heure dans le script : curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" -H "Accept-Language: $AL" --url "$CHKURL" | grep -qE "<span>(Welcome|Hi) <b>$LOGIN</b></span>" && echo "`date +%Y%m%d_%H%M%S`: Login successful" || { echo >&2 "`date +%Y%m%d_%H%M%S`: Login failed" ; exit 1 ; } Au niveau de la planification des tâches : incrémentation dans le fichier de log : sh /volume1/homes/user/dyndns-login.sh 2>&1 >> /volume1/homes/user/dyndns-login.log @+ Modifié le 5 juin 2013 par artrox 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
pat77 Posté(e) le 5 juin 2013 Partager Posté(e) le 5 juin 2013 merci mais tu parles chinois pour moi . Tu fais comment concretement pour ajouter ce script dans le ds? j'ai un ds110 avec derniere version. Il me faut la façon d'inserer le script pour debutant, je pars de loin... merci en tout cas pour l'aide. je ne comprend pas comment tu fais pour savoir que c'est bon. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
artrox Posté(e) le 5 juin 2013 Partager Posté(e) le 5 juin 2013 (modifié) Hello, Dans un premier temps, il faut te connecter en mode terminal. Pour se faire, tu vas sur l'interface du NAS et tu actives SSH : Panneau de configuration / Service réseau / Terminal / Activer le service SSH. Pour transférer ton script, le plus simple est de le copier sur une clé USB et d'utiliser File Station pour le mettre dans le répertoire de ton choix. Tu peux ensuite suivre le tuto pour utliser une web console. Une fois le script lancé, il te donne l'info suivante : DEBUG: Response received - verifying result...Login successful @+ Modifié le 5 juin 2013 par artrox 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
devildant Posté(e) le 5 juin 2013 Partager Posté(e) le 5 juin 2013 après 18.3€ par ans c'est pas non plus excessif, depuis bientôt 3 ans que je suis chez eux je n'est jamais eu de problème, apres je peux comprendre que vous ne vouliez pas payer mais bon. en tous cas bonne chance pour votre script 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
lejurassien45 Posté(e) le 30 juin 2013 Partager Posté(e) le 30 juin 2013 (modifié) J'ai trouvé ce site qui en re-parle et qui est pas mal je trouve...http://synologeek.ddns.net Modifié le 4 juillet 2014 par lejurassien39 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
tahitibub Posté(e) le 10 juillet 2013 Auteur Partager Posté(e) le 10 juillet 2013 (modifié) Merci à tous pour vos contributions. Voici donc ce que j'ai mis dans mon fichier sh : #!/bin/sh LOGIN="xxxxxxxxxx" PASSWORD="xxxxxxxxxx" COOKIES="/tmp/dynsdns.cookies.txt" LOGINURL="https://account.dyn.com/" POSTURL="$LOGINURL" CHKURL="https://account.dyn.com/" DST="-" || DST="/dev/null" # Ensure no broken session caching... [[ -s "$COOKIES" ]] && rm "$COOKIES" echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..." /usr/syno/bin/curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A "$UA" --url "$LOGINURL" echo >&2 "DEBUG: Fetching UID..." VALUE="$( /usr/syno/bin/curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep -m 1 "multiform" | cut -d"'" -f 6 )" echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..." /usr/syno/bin/curl -b $COOKIES -c $COOKIES -d "username=$LOGIN" -d "password=$PASSWORD" -d "iov_id" -d "multiform=$VALUE" -e "$LOGINURL" -kso "$DST" -A "$UA" --url "$POSTURL" echo >&2 "DEBUG: Response received - verifying result..." /usr/syno/bin/curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" --url "$CHKURL" | grep -q "<span>Welcome <b>$LOGIN</b></span>" && echo "Login successful" || echo >&2 "Login failed" Pour info, le prénommé "Dirk" a modifié le script de façon à gérer plusieurs comptes Dyndns et à envoyer un mail (voir Post 34 du blog stuart). Voici ce que ça donne chez lui : #!/usr/bin/env bash LOGIN=( 'account1' 'account2' 'accountn' ) PASSWORD=( 'password1' 'password2' 'passwordn' ) #UA="Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/0.0.0 (KHTML, like Gecko) Version/0.0.0 Safari/0.0.0" EMAIL='myemail@example.com' COOKIES="/tmp/.dynsdns.cookies.txt" LOGINURL="<a href="https://account.dyn.com/entrance/"" rel="nofollow">https://account.dyn.com/entrance/"</a>; POSTURL="$LOGINURL" CHKURL="<a href="https://account.dyn.com/"" rel="nofollow">https://account.dyn.com/"</a>; (( DEBUG )) && DST="-" || DST="/dev/null" for i in ${!LOGIN[*]}; do ( # Ensure no broken session caching... [[ -s "$COOKIES" ]] && rm "$COOKIES" (( DEBUG )) && echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..." curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A "$UA" --url "$LOGINURL" (( DEBUG )) && echo >&2 "DEBUG: Fetching UID..." VALUE="$( curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep -m 1 "multiform" | cut -d"'" -f 6 )" (( DEBUG )) && echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..." curl -b $COOKIES -c $COOKIES -d "username=${LOGIN[$i]}" -d "password=${PASSWORD[$i]}" -d "iov_id" -d "multiform=$VALUE" -e "$LOGINURL" -kso "$DST" -A "$UA" --url "$POSTURL" (( DEBUG )) && echo >&2 "DEBUG: Response received - verifying result..." curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" --url "$CHKURL" | grep -qE "<span>(Welcome|Hi) <b>${LOGIN[$i]}</b></span>" && (echo "Login successful" | mutt -s "DynDNS ${LOGIN[$i]} successful" -- $EMAIL) || (echo "Login failed" | mutt -s "DynDNS ${LOGIN[$i]} failed" -- $EMAIL) sleep 5$i.$RANDOM ); done Sinon, Artrox pourrait-il publier son code complet, avec les modifs pour le fichier log ? Merci Modifié le 10 juillet 2013 par tahitibub 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Foksadure Posté(e) le 7 avril 2014 Partager Posté(e) le 7 avril 2014 Bon bah fin de la partie. To our Dyn free hostname users: For the last 15 years, all of us at Dyn have taken pride in offering you and millions of others a free version of our Dynamic DNS Pro product. What was originally a product built for a small group of users has blossomed into an exciting technology used around the world. That is why with mixed emotions we are notifying you that in 30 days, we will be ending our free hostname program. This change in the business will allow us to invest in our customer support teams, Internet infrastructure, and platform security so that we can continue to strive to deliver an exceptional customer experience for our paying customers. We would like to invite you to upgrade to VIP status for less than $20 -- a 25% discount good for any package of Remote Access (formerly DynDNS Pro). By doing so, you'll have access to customer support, additional hostnames, and more. Avoir eu gratuitement Internet Guide - et accessoirement un nom de domaine dynamique - aussi longtemps, c'était quand même chouette, même si finalement je me passerai sans pb des deux. Merci à eux quand même. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.