Qui n’a pas un jour tenté, histoire de faire vite, de piper des données dans telnet pour simplement lancer une commande sur un serveur après s’être authentifié, et en récupérer le résultat sur la sortie standard ?
Il est vrai qu’au premier abord on pourrait penser qu’un simple :
printf "%s\n%s\n%s\n" monlogin monpass ls | telnet localhost
devrait suffire a entrer en contact avec l’au-delà. Il n’en n’est rien.
En fait, on peut tout à fait garder le principe de cette première tentative en la remodelant comme suit :
(echo monlogin; sleep 2; echo monpasse; sleep 2; echo w) | telnet localhost
dans ce cas là, celui d’un accès au serveur telnet de localhost, on aurait pu écrire :
(echo monpasse; sleep 2; echo w) | telnet -l monlogin localhost
d’une exécution plus rapide.
Si l’on veut afficher uniquement les données importantes à nos yeux il suffira de piper de nouveau la sortie sur grep et d’utiliser l’expression appropriée.
D’autres petits exemples d’utilisation pour terminer :
(echo "SYST"; sleep 2) | telnet localhost 21
(echo "USER monlogin"; sleep 2; echo "PASS monpass"; sleep 2; echo "PWD"; sleep 2) | telnet localhost 21
(printf "HEAD / HTTP/1.0\n\n"; sleep 2) | telnet localhost 80