JDownloader Community - Appwork GmbH
 

 
 
Thread Tools Display Modes
  #1  
Old 30.12.2010, 09:18
andy23
Guest
 
Posts: n/a
Default Problème de reconnexion sur le "long terme"

Bonjour,

Je n'ai aucun soucis à créer un script de reconnexion, la reconnexion est réussie puis Jdownloader enregistre le script, je fais ensuite "renouveller IP" cela fonctionne encore.
Jusque là tout va bien seulement au bout d'un certain nombre de reconnexion automatique, Jdownloader n'arrive plus à se reconnecter automatiquement, j'ai "reconnexion échouée" et il me dit que la reconnexion n'est pas correctement configurée, alors que je n'ai absolument rien toucher au script précédent je dois donc réenregistrer un nouveau script, puis tout fonctionne pour un certains nombre de reconnexion puis reproblème etc...
Je passe donc mon temps à recréer le script de connexion... J'ai même tenté de le faire en raw mode bien que je ne sache pas ce que cela signifie et rien n'y fait tout fonctionne pendant quelques reconnexions puis
J'ai l'habitude de laisser mes téléchargements en pleine nuit donc c'est extrêmement dérangeant puisqu'en me réveillant je m'aperçois que JD a attendu la limite pour retélécharger chaque partie après de 2-3 parties ou tout fonctionnait nickel (vous me suivez ?!)
Quelqu'un aurait une idée pour régler ce problème ?

MERCI de votre aide

PS: J'ai une livebox 2, je passe donc par l'interface livebox en allant dans "configuration" puis "livebox" puis "internet" et enfin "relancer la connexion" pour obtenir ma nouvelle adresse IP et comme je l'ai expliqué précédemment tout fonctionne normalement pour les premières reconnexions (environ 3-4 en moyenne cela dépend des jours)
PS²: J'ai lu la partie sur les éventuels problèmes de reconnexion dans la FAQ sans trouver réponses à mon problème

Last edited by andy23; 30.12.2010 at 09:21.
  #2  
Old 30.12.2010, 11:33
fma16
Guest
 
Posts: n/a
Default

Il me faudrais un journal pour me pencher sur votre problème, mais je pense qu'il provient du fait que l'adresse par laquelle on accède à la reconnexion est dynamique, ce qui empéche JD de fonctionner.
  #3  
Old 30.12.2010, 13:35
remi
Guest
 
Posts: n/a
Cool

@andy23

Est-ce que vous pouvez comparer les scripts de deux enregistrements successives et nous montrer les différences?

Vous pouvez utiliser Notepad++ ou un outil comme FreeDiff pour faire cela.
  #4  
Old 30.12.2010, 22:47
andy23
Guest
 
Posts: n/a
Default

1er script (avec test réussi bien sûr):

[[[HSRC]]]
[[[STEP]]]
[[[REQUEST]]]
GET / HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
POST /index.cgi HTTP/1.1
Host: %%%routerip%%%

page=home&authaction=login&sessionid=lxgFRsA5wwP8mjIv9vuWiGrGej4tnTH&authkey=aZMYRXmAzFTmncY&authmd5 passwd=1f99743f112222457f820a1561bdcaba&authlogin=admin&authpasswd=
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
GET /index.cgi?page=hwview&sessionid=lxgFRsA5wwP8mjIv9vuWiGrGej4tnTH HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
GET /index.cgi?page=internet&sessionid=lxgFRsA5wwP8mjIv9vuWiGrGej4tnTH HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
GET /index.cgi?page=internet&action=reset&sessionid=lxgFRsA5wwP8mjIv9vuWiGrGej4tnTH HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[/HSRC]]]

Last edited by andy23; 30.12.2010 at 23:12.
  #5  
Old 30.12.2010, 22:52
andy23
Guest
 
Posts: n/a
Default

2ème script (avec test réussi aussi):

[[[HSRC]]]
[[[STEP]]]
[[[REQUEST]]]
GET / HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
POST /index.cgi HTTP/1.1
Host: %%%routerip%%%

page=home&authaction=login&sessionid=AUeLPG8wgFY6VXfIWOQQCqS3nUZF42z&authkey=PbGeRQA3wZbViad&authmd5 passwd=744ade1b167e2cd6de60aa44827fb12b&authlogin=admin&authpasswd=
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
GET /index.cgi?page=hwview&sessionid=AUeLPG8wgFY6VXfIWOQQCqS3nUZF42z HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
GET /index.cgi?page=internet&sessionid=AUeLPG8wgFY6VXfIWOQQCqS3nUZF42z HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[STEP]]]
[[[REQUEST]]]
GET /index.cgi?page=internet&action=reset&sessionid=AUeLPG8wgFY6VXfIWOQQCqS3nUZF42z HTTP/1.1
Host: %%%routerip%%%
[[[/REQUEST]]]
[[[/STEP]]]

[[[/HSRC]]]

Last edited by andy23; 30.12.2010 at 23:11.
  #6  
Old 30.12.2010, 23:18
andy23
Guest
 
Posts: n/a
Default

@fma16:
Qu'est ce qu'un journal ? Comment vous en fournir un ?
Désolé je ne suis pas super calé en informatique...

@remi:
comment vous transférer ce que j'ai obtenu avec freediff ? Quant à notepad++ je ne sais pas comment l'utiliser... :(

Merci à tous les deux de vous pencher sur mon cas
  #7  
Old 31.12.2010, 00:28
fma16
Guest
 
Posts: n/a
Default

Un journal (ou log) est un fichier qui regroupe toutes les actions du logiciel et quelques informations en rapport avec le logiciel. Si il est envoyé correctement, seul les supporters (une poignée d'utilisateurs comme moi) peuvent le lire. Pour le faire, faites un tour dans la FAQ ou dans les règles.
Mais je n'en n'ai pas besoin pour l'instant.
Dans votre script, on vois clairement qu'un numero de session est généré à chaque visite, ce qui rend le script inutile au bout d'un moment. Je n'ai pour l'instant, pas de solutions à votre problême. Attendez la réponse de remi
  #8  
Old 31.12.2010, 13:14
remi
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by fma16 View Post
Dans votre script, on vois clairement qu'un numero de session est généré à chaque visite, ce qui rend le script inutile au bout d'un moment.
Même le mot de passe "passwd" change.

Veuillez lire "Instructions for Special Routers" dans "Getting started with Reconnection". Ce message parle de routeurs qui posent de problèmes.

Si vous ne comprenez pas l'anglais, vous pouvez utilisez la fonction de traduction de votre navigateur ou utiliser un service comme "**External links are only visible to Support Staff** pour la traduction.
  #9  
Old 02.01.2011, 01:43
andy23
Guest
 
Posts: n/a
Default

call Main

sub Wait_IE(nav)
WScript.Sleep(1000)
Do While not nav.ReadyState = 4
Loop
end sub

sub Click_IE (nav,id)
nav.document.getelementbyID(id).click
call Wait_IE(nav)
end sub

sub init(nav)
set nav = CreateObject("InternetExplorer.Application")
nav.Visible = true
nav.navigate "192.168.1.1"
call Wait_IE(nav)
nav.document.All.tags("input").Item("authpasswd").Value = "admin"
nav.document.formu.submit
call Wait_IE(nav)
end sub

sub bosse(nav)
call Click_IE(nav,"rubric2")
call Click_IE(nav,"link3")
call Click_IE(nav,"linkbutt3")
end sub

sub clean(nav)
nav.quit
end sub

sub main
dim nav

call init(nav)
call bosse(nav)
call clean(nav)
end sub


J'ai trouvé le script ci-dessus sur internet (**External links are only visible to Support Staff****External links are only visible to Support Staff**). Pensez-vous qu'il pourrait marcher ? Et si oui, comment l'utiliser ? J'ai essayé de le copier dans les 4 rubriques de "reconnexion", ça n'a pas marché mais je m'y suis peut être mal pris...
  #10  
Old 02.01.2011, 01:47
andy23
Guest
 
Posts: n/a
Default

Ainsi que celui-ci:

<?php
// Configuration
$ip = "192.168.1.1";
$user = "admin";
$password = "admin";
// Fin Configuration

$url = "**External links are only visible to Support Staff**.$ip."/SubmitInternetService";
$login = $user.":".$password;
$action = Array("ACTION_CONNECT","ACTION_DISCONNECT","reconnect");
if(!isset($_GET['action']) || !in_array($_GET['action'],$action) ) {
?>
<html>
<head>
<title>Livebox Sagem: Connection Manager</title>
</head>
<body>

<form method='get' action='connect.php'>
<p>Que souhaitez vous faire ?</p>
<ul style='list-style-type:none;'>
<li><input type='radio' name='action' value='ACTION_CONNECT' /> Me connecter</li>
<li><input type='radio' name='action' value='ACTION_DISCONNECT' /> Me déconnecter</li>
<li><input type='radio' name='action' value='reconnect' /> Me reconnecter</li>
<li><input type='submit' name='submit' /></li>
</form>
</body>
</html>





<?php

}
elseif($_GET['action'] == "ACTION_CONNECT" || $_GET['action'] == "ACTION_DISCONNECT") {

if($_GET['action'] == "ACTION_CONNECT") $val = "Connecter";
else $val = "Déconnecter";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array($_GET['action'] => $val));
curl_exec($ch);
curl_close($ch);

echo $val;

}
else {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("ACTION_DISCONNECT" => "Déconnecter"));
curl_exec($ch);
curl_close($ch);


echo "<br />Déconnexion: <b>OK</b>";
sleep(1);
echo "<br />Reconnexion dans 10 secondes";
for($i = 0; $i<5;$i++) {
echo ".";
sleep(2);
}

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("ACTION_CONNECT" => "Connecter"));
curl_exec($ch);
curl_close($ch);

echo "<br />Connexion: <b>OK</b>";
}
?>
  #11  
Old 02.01.2011, 12:08
fma16
Guest
 
Posts: n/a
Default

Pour le premier script : Suivez les recommandations sur le forum où vous l'avez trouvé : "Sauver ce script par exemple dans c:\livebox\decoreco.vbs". Ensuite, il faut parametrer JD : Préférences -> Reconnexion -> Outil de reconnexion externe et vous insérez votre fichier. Normalement, cela devrait marcher.
  #12  
Old 02.01.2011, 15:07
remi
Guest
 
Posts: n/a
Default

@andy23

Si ce premier script est un VBScript, vous avez besoin de l'interpréteur Wscript.exe. Pour exécuter le fichier .vbs il faut probablement l'utiliser comme paramètre dans l'option "Externe" de l'outil de reconnexion.
  #13  
Old 05.01.2011, 06:44
andy23
Guest
 
Posts: n/a
Default

Merci pour votre aide mais pourriez-vous être plus précis. Comment sauver ce script en vbs ? Ensuite dans JD, dois-je mettre "C:\WINDOWS\system32\wscript.exe" dans "commandes" ? et enfin que dois-je mettre dans la case restante ? l'adresse du fichier vbs ou glisser-déposer le fichier directement ?

Merci encore
  #14  
Old 05.01.2011, 14:09
remi
Guest
 
Posts: n/a
Default

Il faut copier le texte du script dans un fichier .txt. Ensuite vous changez l'extension en .vbs.

La commande est "C:\WINDOWS\system32\wscript.exe" et le paramètre est l'adresse du fichier .vbs.

J'espère pour vous que ça marcheras.
  #15  
Old 05.01.2011, 21:03
andy23
Guest
 
Posts: n/a
Default

Bon j'ai essayé 2-3 fois ça marche! Je n'ai rien à télécharger pour le moment donc pas de test sur le long terme mais espérons que cela continue... En tout cas merci beaucoup pour votre aide et votre réactivité!
  #16  
Old 08.01.2011, 02:06
teebeenator
Guest
 
Posts: n/a
Default

Salut le forum, premier post! Et donc avant tout; je tiens à remercier tous les gens qui s'occupent et developpent Jdownloader. Je le trouve fantastique.

Il y a quelques temps j'ai aussi fait un script pour piloter l'interface web de la livebox2 en perl (testé sous linux et pour windows j'en ai fait un .exe).
http-://p.quinput.eu/debfarm/livebox.exe

Ca permet de tout faire ce que l'on peut faire en accedant à l'interface web (meme faire sonner le téléphone VOIP )

Si ca peut aider .. :

Quote:
Simple mechanizer to post forms on the livebox2. Can also dump.

Examples:

Display sys info
./livebox.pl -v -pa=infosys_main | html2text
Display adsl info
./livebox.pl -v -pa=infosys_adsl | html2text
Change wireless mode to 2 (b/g)
./livebox.pl mode=2 --page=wireless
Stop broadcasting SSID, set WPA2-PSK (AES) and activate MAC filtering
./livebox.pl -pa=wireless broadcast=0,securitymode=6,macfiltering=1
Change WPA Passphrase to 12345678
./livebox.pl -pa=wireless key=12345678
Reboot livebox
./livebox.pl action=submit action=reboot --page=reboot
etc..
PHP Code:
#!/usr/bin/perl 
use warnings;
use 
strict;
use 
feature 'say';
use 
WWW::Mechanize::Sleepy
use 
Getopt::Long;
use 
Pod::Usage;
use 
Digest::MD5 qw /md5/;

my $user      'admin';
my $md5passwd unpack'H*'md5('admin') );
my $uri       '**External links are only visible to Support Staff**;
my $page;
my ($verbose$progress) = (0,0);

GetOptions(
    
'user=s'    => \$user,
    
'md5pass=s' => \$md5passwd,
    
'ip=s'      => \$uri,
    
'page=s'    => \$page,
    
'progress'  => \$progress,
    
'verbose'   => \$verbose,
    
help        => sub pod2usage(1); },
) or 
pod2usage(2);

=
head1 SYNOPSIS

livebox
.pl [opt] [key=value,key=value, ...] [key=value,key=value, ...] 

Options:

    --
user=user            Set the username (default to 'admin')
    --
md5pass=md5          Set the md5 of the user's password (default to md5 of 'admin')
    --ip=uri               URI of the Livebox2 (default to '
http://192.168.1.1')
    
--page=page            Which page to post to
    
--progress             Print Progress state
    
--verbose              Print html traffic
    
--help                 Show this message
=cut

my $mech 
WWW::Mechanize::Sleepy->newcookie_jar => undefautocheck => 1show_progress => $progresstimeout => 50sleep => 0.666 );

if (
$verbose) {
    $/++;
    
$mech->add_handler("request_send",  sub { print ">" x 80 "\n"shift->as_string ; return });
    
$mech->add_handler("response_done"sub { print "<" x 80 "\n"shift->as_string ; return });
}

#Record Session Id
$mech->get($uri);
my $sessionid $mech->value('sessionid');

#Hash password with authkey
my $authmd5passwd unpack'H*'md5$md5passwd $mech->value('authkey') ) );

#Post Form to Authenticate
$mech->submit_formwith_fields => { authlogin => $userauthmd5passwd => $authmd5passwd } );

#Get the page if requested, otherwise exit
exit unless defined $page;
$mech->get("$uri/index.cgi?page=$page&sessionid=$sessionid");

#Post Form as many times as requested
while ( my $values shift ) {
    
my %fields map m/^(.*?)=(.*)$/ } split m/,/, $values;
    
$mech->submit_formwith_fields => \%fields );

Pour la cas de la reconnection, on voit donc qu'il faut:
  • Acceder a **External links are only visible to Support Staff****External links are only visible to Support Staff** pour recuperer le $sessionid ainsi que le $authkey (qui changent a chaque fois..)
  • Se logger : poster un FORM avec les champs:
    • AuthLogin="admin"
    • Authmd5passwd=HASH_MD5(HASH_MD5("admin" . $authkey))
  • Envoyer la commande de reboot:
    • POST sur /index.cgi?page=reboot&sessionid=$sessionid avec champ action=submit
    • POST sur /index.cgi?page=reboot&sessionid=$sessionid avec champ action=reboot (pour simuler le click à 'etes vous sûr de vouloir rebooter?')

Je ne sais pas si le langage de reconnection interne à Jdownloader permet ca. Ca permettrai d'avoir le meme script pour windows;linux; mac;.. Par contre il n'est plus possible d'avoir une génération automatique de script dès qu'il y a des champs variables..


@+

Last edited by teebeenator; 09.01.2011 at 14:15.
  #17  
Old 08.01.2011, 13:50
remi
Guest
 
Posts: n/a
Default

Merci pour votre solution. J'ai ajouté une référence vers votre message dans le forum "Reconnect" : "Useful Reconnection Scripts from Users".
  #18  
Old 08.01.2011, 18:17
fma16
Guest
 
Posts: n/a
Default

@remi
PS : j'ai ajouté que c'était un script pour Livebox 2
  #19  
Old 08.01.2011, 22:48
teebeenator
Guest
 
Posts: n/a
Default Script livebox

Parfait!

Last edited by teebeenator; 09.01.2011 at 14:15. Reason: Déplacement dans l'autre message
  #20  
Old 09.01.2011, 12:40
remi
Guest
 
Posts: n/a
Default

Si vous ajoutez ce dernier message à votre premier message (Edit), tous le monde trouverait toute information dans le même endroit.

@fma16

Merci pour cette précision.
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 22:28.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.