IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

[NetCat] Transferer des fichiers entre MS windows et Linux/Unix


Sujet :

Développement

  1. #1
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut [NetCat] Transferer des fichiers entre MS windows et Linux/Unix
    Bonjour a tous,

    j'ai une petit question a propos de netcat, j'arrive a transferer des fichiers entre deux machines Linux (l'une reelle et l'autre virtuelle) de la facon suivante:

    Machine Server (mon ordi portable avec Ubuntu)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sudo cat monFichier.avi | pv -b | sudo nc -l -p 3333
    Le client ( machine virtuelle a distance sous winXP )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sudo nc -n a.b.c.d 3333 > leFichier.avi
    et tout se passe sans probleme.

    Par contre si je repete l'operation depuis ou vers netcat sous MS Windows XP, il n'y a pas moyen. Mes fichiers zip par exemple font bipper mon ordianteur en permanance, et les fichiers textes s'affichent sans probleme dans le terminal cmd mais rien n'est enregistre sur ls disque dur.

    Pour le moment, tous les exemples que j'ai trouve ne concernent que les systemes Linux/Unix, et j'avais espere que les methodes demontrees soient portables

    Si vous avez une idee, ca serai genial... je suis certain que j'ai oublie un truc tout bete

    Merci encore,

    Ar@mi$ - chercheur en detresse

  2. #2
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    les fichiers sont-ils identiques? (à priori, non)

    pour le vérifier: diff fichier_src fichier_rcvd

    ensuite si les fichiers sont bien différents (diff vas te dire: "les fichiers sont différents", sans détails), un petit hexdump puis diff devrais te renseigner sur les différences entre les deux fichiers.

    j'ai pas de windows sous la main pour essayer malheuresement

  3. #3
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Re,

    monFicher.avi et leFichier.avi sont exactement le même fichier, c'est juste que lorsque le client "prend" le fichier en question il peut se permettre de le nomme comme il le désire. Tout cela marche très bien sous Linux. J'aimerai bien faire un diff avec le fichier reçu par windows... mais il n'y a pas de fichier enregistre sur le HDD de Windows

    voila... j'espère que c'est mieux la.

    Ar@mi$

  4. #4
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Update!

    Je viens reussir a transfer un fichier entre Windows et Linux, et dans les deux senses s'il vous plait Ma premiere erreur etait de lancer netcat.exe avec Launchy , et du coup j'avais access a la liste des arguments mais pas a toutes les fonctionalites de la ligne de commande tel que les redirections par exemple. Voici donc un resume des mes prouesses:

    Scenario 1
    Client [Linux Ubuntu]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nc -n a.b.c.d 3333 < duText.txt
    Server [Windows]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    netcat.exe -l -p 3333 -o sortie
    et sortie est un fichier hexadecimal avec le dump du contenu du socket. Le texte contenu dans le fichier client duText.txt est bien present cependant sortie contient plein d'information hexadecimale inutile.

    Scenario 2
    Test messagerie
    Client [linux Ubuntu]
    Une fois la connexion etablie, un texte aleatoire est entre.

    Server [Windows]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    netcat.exe -l -p 3333 -o log
    Encore une fois text aleatoire. Toutes la conversation apparait dans l'ordre chornologique (avec plein d'informations hexadecimales) dans le fichier log.

    Scenario 3
    Server [Windows]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    netcat.exe -l -p 3333 < readme.txt
    Le server "sert" le readme.txt a ceux qui se connectent.

    Client [Linux]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nc -n a.b.c.d 3333 > fichier.txt
    Copie le message dans fichier.txt, et c'est parfait le contenu de fichier.txt est exactement le meme que celui de readme.txt.

    Question
    Maintenant, la question est comment faire la meme chose avec les fichiers pas texte? style ZIP, PNG et etc. Je suis certain que Windows convertira en ASCII tout fichier passe a [b]netcat.exe[b] a l'aide du signe <, en effet l'aide de Microsoft indique le fichier a droite de < doit etre "tape"

    J'ai jete un oeil a hexdump, mais d'apres ce que j'ai compris il ne permet pas de "reconstruire" une fichier a partir du dump reseaux/hexa. Un tel outil existe-t-il? Ou alors me suis-je encore trompe sur les options a utilise avec [b]netcat[b]... je trouve bizarre que l'on ne puisse exchanger que des fichiers textes.

    Ar@mi$

  5. #5
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    tu peux tout à fait transferer des fichiers qui ne contiennent pas que des caractéres "imprimables" via netcat.

    tu donne à manger un flot de bytes à netcat qui pousse ça sur le réseau
    de l'autre coté, netcat reçoit un flot de bytes qu'il balance sur la sortie standard.
    ensuite, tu redirige cette sortie standard vers un fichier grace au pipe >.

    je crois avoir compris différement la phrase
    Mes fichiers zip par exemple font bipper mon ordianteur en permanance, et les fichiers textes s'affichent sans probleme dans le terminal cmd
    si tu tente de les afficher dans ta console, c'est normal.
    la valeur ascii 7 (BEL) en est responsable
    tenter d'afficher ce caractére fait 'bipper' l'ordinateur, c'est le comportement normal.

    je suis à 99,9% sur et certain qu'une réception de fichiers sur windows via la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nc.exe server 3333 > monfichier
    fonctionne quelque soit le type de fichier

  6. #6
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Re,
    Citation Envoyé par Dark_Ebola Voir le message
    tu peux tout à fait transferer des fichiers qui ne contiennent pas que des caractéres "imprimables" via netcat.

    tu donne à manger un flot de bytes à netcat qui pousse ça sur le réseau
    de l'autre coté, netcat reçoit un flot de bytes qu'il balance sur la sortie standard.
    ensuite, tu redirige cette sortie standard vers un fichier grace au pipe >.
    C'est tout a fait exact Comme je l'ai ecrit dans mon precedent message, au debut j'avais fait l'erreur d'utiliser netcat via un utilitaire de lancement de programmes. Par la suite, j'ai fait quelque tests avec des fichiers textes. Apres tout, la documentation Microsoft suggere "fortement" que les fichiers piper doivent etre tape [ lien & lien ]. Qui plus est, par manque de temps mes essais etaient limites. Cependant, je n'avais pas considere faire une redirection sans extension et renommer la sortie par la suite

    Toujours est-il que j'ai maintenant pris la peine de tester completement le precede dans les deux senses. Et oui, Dark_Ebola a tout a fait raison, si ca marche avec les systemes *nix, ca marche de la meme facon avec M$ Windows pourvu que l'on fasse tout a partir de la console DOS et non pas via un logiciel tiers

    Citation Envoyé par Dark_Ebola Voir le message
    je crois avoir compris différement la phrase

    si tu tente de les afficher dans ta console, c'est normal.
    la valeur ascii 7 (BEL) en est responsable
    tenter d'afficher ce caractére fait 'bipper' l'ordinateur, c'est le comportement normal.
    Mon logiciel de lancement de programme m'a joue un tour. En effet celui-ci execute netcat. Cependant, comme aucun parametre n'est fourni netcat offre la possibilite d'entrer ces parametres avant de continuer. Tout cela se fait dans une fenetre qui ressemble a la console DOS. Evidement, je n'ai pas fait attention et donc avec les parametres j'ai aussi tape > fichier_sortie. Et du coup le contenu du fichier ZIP apparait dans la fenetre et fait bipper la machine. Le probleme etait que la directive < fichier_entree.txt marchait a peu pres. Le texte apparait sur la machine distante mais n'est pas enregistre

    Citation Envoyé par Dark_Ebola Voir le message
    je suis à 99,9% sur et certain qu'une réception de fichiers sur windows via la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nc.exe server 3333 > monfichier
    fonctionne quelque soit le type de fichier
    Tout a fait


    Ar@mi$

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. partage des fichiers entre windows et linux
    Par open_source dans le forum Windows XP
    Réponses: 7
    Dernier message: 04/12/2007, 16h07
  2. Rapatrier des fichiers entre unix et windows
    Par diamond_bleu dans le forum Administration système
    Réponses: 6
    Dernier message: 14/06/2007, 17h41
  3. Partage des fichiers entre projets Eclipse
    Par laura_cornel dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 11/12/2006, 12h52
  4. Réponses: 3
    Dernier message: 17/11/2006, 19h12
  5. [win] problème pour partager des fichiers entre 2 pc
    Par goma771 dans le forum Administration
    Réponses: 1
    Dernier message: 01/12/2005, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo