web-dev-qa-db-fra.com

Envoi de fichier via netcat

J'utilise quelque chose comme ceci pour envoyer des fichiers d'un ordinateur à un autre:

Pour servir un fichier (sur l'ordinateur A):

cat something.Zip | nc -l -p 1234

Pour recevoir le fichier (sur l'ordinateur B):

netcat server.ip.here. 1234 > something.Zip

Ma question est ... puis-je faire le contraire? Supposons que j'ai un fichier sur l'ordinateur B et que je souhaite l'envoyer à A, mais pas comme je l'ai écrit ci-dessus, mais en faisant en sorte que l'ordinateur qui est censé recevoir le fichier (A) soit un serveur "à l'écoute" et connecte l'ordinateur qui B) au serveur et envoyer le fichier? C'est possible? Je pense que cela pourrait être le cas mais je ne sais pas comment faire cela.

Dans le cas où mon explication ci-dessus est fausse: Comment puis-je envoyer le fichier VERS 'serveur' au lieu de le servir sur le serveur et de le prendre ensuite (comme je l'ai fait ci-dessus)?

18
Phil

Sur votre serveur (A):

 nc -l -p 1234 -q 1> quelque chose.zip </dev/null
 chat quelque chose.Zip | netcat server.ip.here 1234 
28
martinwguy

Veuillez noter que si vous souhaitez également conserver les autorisations de fichiers, la propriété et les horodatages, nous utilisons tar avec netcat faire des transferts de répertoires et de fichiers.

Sur le système de réception:

nc -l -p 12345 -q 1 | tar xz -C /path/to/root/of/tree

Du système d'envoi:

tar czf - ./directory_tree_to_xfer | nc <Host name or IP address of receiving system> 12345 

J'espère que cela pourra aider.

4
B.Kaatz

Démarrez une autre instance de netcat sur l'ordinateur B. Faites ce que vous avez fait sur l'ordinateur A, mais transmettez-le depuis B. Donnez un nouveau port au nouveau serveur.

0
DaveParillo

Ordinateur A: nc -l -p 1234 > filename.txt

Ordinateur B: nc server.com 1234 < filename.txt

Devrait travailler aussi;)

0
mark