Télécharger un fichier en HTTP par telnet

Télécharger un fichier en HTTP par telnet - Win NT/2K/XP - Windows & Software

Marsh Posté le 03-01-2005 à 18:00:22    

Bonjour,
 
Il n'existe pas d'equivalent de wget par défaut sous windows et je ne veux pas utiliser la version windows de wget.
 
Y a-t-il un moyen de récupérer un fichier binaire (par ex, un .exe ou .zip) en se connectant par telnet au serveur web et en faisant un GET :
 
C:\>telnet www.site.com 80
GET /rep/fichier.exe HTTP/1.1
Host: www.site.com
 
[Donnees binaires brutes]...
 
 
Il y a donc moyen de lire le contenu du fichier mais comment enregistrer celui ci sur le disque ?
 
Merci pour vos réponses
 
--  
Jérémy


Message édité par outdial le 03-01-2005 à 18:31:02
Reply

Marsh Posté le 03-01-2005 à 18:00:22   

Reply

Marsh Posté le 03-01-2005 à 18:43:31    

Si tu peux te connecter au serveur en telnet, GET ne sera pas interprété comme une commande ftp, mais comme une commande du système d'exploitation. Peut-être avec rcp ? par contre, pour l'utilisation d'un script comme on pourrait le faire avec ftp ...
Il est pas bien wget pour windows ?

Reply

Marsh Posté le 03-01-2005 à 18:54:17    

[citation=1874102,0,2]? par contre, pour l'utilisation d'un script comme on pourrait le faire avec ftp ...[/citation]
 
A supposer que le protocole ftp et son port ne soient pas bloqués
 
[citation]Il est pas bien wget pour windows ?[/citation]
 
L'idéal serait d'émuler le wget avec d'autres commandes :-) Sous Linux, j'ai essayé de faire un GET en Telnet en redirigeant la sortie standard dans un fichier, et en éditant le début de ce fichier pour supprimer les traces de la session HTTP; xpdf veut bien l'ouvrir, mais il est corrompu.

Reply

Marsh Posté le 03-01-2005 à 19:03:00    

Sinon, il y a CSHttpClient qui permet de générer des requètes http, mais je ne pense pas que ça puisse s'ecécuter en dehors de asp, vbs ...

Reply

Marsh Posté le 03-01-2005 à 19:03:00    

Il ne s'agit pas de FTP mais de HTTP. Pour le FTP (car j'en ai besoin aussi) il me suffit d'utiliser le client ftp 'ftp.exe' disponible dans les install par défaut de Windows.
 
Pour le GET, j'ai essayé avec Netcat pour win, de faire un GET sur un .exe de cette facon :
 
C:\>nc www.site.com 80 > output.exe
GET /rep/fichier.exe HTTP/1.1
Host: www.site.com
 
 
J'ai bien mon output.exe, je l'edite et je retire les lignes de headers au début. Et la, le bon icone apparait, et l'executable fonctionne parfaitement.
 
Conclusion : Pourquoi pas me direz vous, mais je dois impérativement utiliser telnet et pas netcat (l'astuce de rediriger la sortie standard vers un .Exe ne fonctionne qu'avec netcat mais pas avec telnet).
 
De même pour wget sous windows, il marche très bien mais je ne peux pas l'utiliser : je dois impérativement utiliser des outils qui sont présents sur une installation par défaut de windows.
 
Merci ;)

Reply

Marsh Posté le 04-01-2005 à 20:05:23    

Pas d'autres idées ... ?

Reply

Marsh Posté le 04-01-2005 à 22:30:22    

ben le problème c'est que dans une install de base de windows il n'y a pas grand chose ...
Il reste peut être une possibilité : on peut faire dans une fenetre dos (dans le répertoire program files/internet explorer) : iexplore nom_domaine/rep/fichier.zip
Ca ouvre une fenêtre internet explorer qui se ferme aussitot. Il ne reste plus que la boite de dialogue pour l'enregistrement du fichier. Mais si ça doit s'exécuter dans un batch c'est rapé.
Ou alors cscript ? ça permet d'exécuter des scripts vbscript ou jscript dans un environnement dos. Mais est-ce qu'on peut s'en servir pour lancer une requète http ...

Reply

Marsh Posté le 05-01-2005 à 00:36:29    

Hmm...
J'ai finalement trouvé mieux :
 

Code :
  1. @echo off
  2. echo TYPE binary > cmd.txt
  3. echo GET /repertoire/wget.exe >> cmd.txt
  4. echo bye >> cmd.txt
  5. ftp -A -v -s:cmd.txt mon_serveur_ftp
  6. del cmd.txt
  7. wget -q http://serv/fichier
  8. wget -q ftp://serv/fichier


 
 
;)
--  
Jérémy

Reply

Marsh Posté le 05-01-2005 à 16:32:42    

Oui mais là tu utilises wget (+ ftp) ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed