Titre: [shell] utilisation de netcat (nc) Posté par: Tqup3 le 02 Novembre 2008 à 03:57:49 Bonsoir à tous,
Voilà, je dois contacter un server distant par l'intermédiaire de netcat. Une fois connecté, je dois envoyer plusieurs requêtes sur ce server. Prenons l'exemple d'un server IRC (strict hasard hein =D) : je dois utiliser 3 "requêtes" pour me connecter et joindre un channel. J'y arrive très bien à la mano, c'est à dire en tapant dans la console, une à une les instructions. Cependant, j'ai voulu rendre la tâche automatique en faisant un petit script. Le seul moyen que j'ai trouvé après de multiples recherches chez mon ami favori est une ligne du style : Code: echo -e "requete1\nrequete2\nrequete3\n" | nc -vv ip_server port_server Ceci fonctionne très bien mais le problème et que je dois récuperer ce que me renvoit le server après la troisième requête afin d'y effectuer un traitement. Et là je me retrouve coincé car je ne peux effectuer de boucles iératives ni même de conditions de cette manière. En fait j'ai remarqué que l'instruction "nc" bloque le script jusqu'à ce que la connection se termine. Moi j'aimerais faire un "nc" puis sans refermer la connection, faire du traitement puis a nouveau un "nc". Je ne sais pas si je suis très clair. J'ai trouvé les arguments -c et -e mais je n'arrive pas à les exploiter plus que ça et je dois dire que les tutos "nc" se ressemblent tous sur google. Pour faire un peu plus synthétique (parce que là c'est raté :p), je veux pouvoir effectuer du traitement suivant les réponses du server sans avoir à me reconnecter dessus à chaque fois que je veux lui envoyer une nouvelle donnée. Je ne sais pas si je suis très clair, n'hésitez pas à m'en demander plus si je me suis mal exprimé ! Merci, Tqup3 Titre: Re : [shell] utilisation de netcat (nc) Posté par: _o_ le 03 Novembre 2008 à 09:23:54 Netcat n'est vraiment pas l'outil adapté pour ce genre d'épreuve, mais passons...
En fait j'ai remarqué que l'instruction "nc" bloque le script jusqu'à ce que la connection se termine. Moi j'aimerais faire un "nc" puis sans refermer la connection, faire du traitement puis a nouveau un "nc". Je ne sais pas si je suis très clair. J'ai trouvé les arguments -c et -e mais je n'arrive pas à les exploiter plus que ça et je dois dire que les tutos "nc" se ressemblent tous sur google. Y'a pas de miracle. si tu veux vraiment conserver la connexion de ton netcat avec le serveur et effectuer des traitements en parallèle... ben faut paralléliser. Par exemple en lançant netcat dans un processus fils, puis en envoyant les requêtes sur son entrée standard et lire les réponses sur ses sorties standard et d'erreur. Je ne connais pas netcat mais je ne vois aucune raison pour que cela ne fonctionne pas. Cela dit, je me répète, je ne vois pas trop l'intérêt de gérer une connexion irc dans un shell, c'est tellement plus simple d'utiliser un langage de script pour faire ça... Titre: Re : [shell] utilisation de netcat (nc) Posté par: Tqup3 le 03 Novembre 2008 à 15:35:41 Merci de ta réponse _o_, je vais me renseigner illicopresto sur la création de proc fils en shell. Je tiens à préciser que j'ai bien pensé à écrire un script avec un clident irc déjà tout prêt mais ça ne m'interesse pas de le faire de cette manière pour le moment.
Mon but, en faisant les épreuves de programmation, est de comprendre le shell Unix (je viens de me mettre en dual boot) et l'utiliser de manière presque automatique. J'ai fait toutes les épreuves de programmation en shell jusqu'à présent, alors je continue sur ma lancée. Titre: Re : Re : [shell] utilisation de netcat (nc) Posté par: _o_ le 03 Novembre 2008 à 17:22:14 Mon but, en faisant les épreuves de programmation, est de comprendre le shell Unix (je viens de me mettre en dual boot) et l'utiliser de manière presque automatique. J'ai bien compris. Ce n'est pas idiot, mais attention à ne pas tomber dans l'excès inverse : le shell, on peut faire plein de choses avec, mais quand il y a des solutions plus simples et rapides à mettre en œuvre, autant les utiliser (dès que mes scripts se compliquent un peu, je dégaine Perl, pour ma part). Titre: Re : [shell] utilisation de netcat (nc) Posté par: Tqup3 le 03 Novembre 2008 à 18:37:53 Ok, en fait pour être plus précis, je souhaitais d'abord apprendre le bash classique puis une fois plus ou moins "maitrisé" continuer par le perl et le python (qui apparement ont l'air lié au bash entre autres à moins que je ne me trompe totalement).
Mais si j'en arrive à atteindre la limite du bash, je me mettrais à ces 2 autres langages puisque je sais que de toutes manières j'y serais obligé un jour où l'autre ! Je vais essayer de me trouver 2-3 tutos sur perl et je vais voir comment je vais appréhender ça ! Merci pour tous tes éclaircissements ! Tqup3 Titre: Re : Re : [shell] utilisation de netcat (nc) Posté par: _o_ le 03 Novembre 2008 à 19:37:52 le perl et le python (qui apparement ont l'air lié au bash entre autres à moins que je ne me trompe totalement). Oui, tu te trompes complètement. :) |