9 votes

Comment envoyer du texte avec Telnet dans Terminal ?

Je voudrais envoyer du texte à un port sur ma machine en utilisant telnet dans le Terminal Mac OS X.

Je démarre telnet en utilisant :

telnet localhost 8080

Ensuite, je tape du texte. Ce texte est-il envoyé automatiquement ou dois-je faire quelque chose pour l'envoyer?

13voto

Loïc Wolff Points 14389

Voici un simple serveur Python :

#!/usr/bin/env python

import socket

TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 10  # Normalement 1024, mais nous voulons une réponse rapide

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)

conn, addr = s.accept()
print 'Adresse de connexion :', addr
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "données reçues :", data
    conn.send(data)  # echo
conn.close()

Source

Enregistrez-le sous le nom de server.py, et exécutez-le python server.py.

Ensuite, essayez de vous connecter en utilisant le terminal

telnet 127.0.0.1 5005

Ensuite, il vous suffit de taper n'importe quoi et d'appuyer sur return

Le serveur affiche les données dans la console et vous les renvoie.

De cette manière, vous saurez ce que vous devez faire pour envoyer des données via telnet.

5voto

kenorb Points 11627

Lorsque vous tapez le texte dans telnet, par défaut il fonctionne en mode Linemode qui envoie les paquets par ligne, donc il vous suffit d'appuyer sur Enter pour envoyer la commande à l'hôte distant (puisque le traitement des caractères du terminal se fait côté client). Ceci permet de réduire le trafic réseau et est très utile pour les réseaux à longue latence lors de la saisie de la ligne de commande. Si vous avez besoin d'envoyer des paquets par caractère tapé, alors vous devez passer en mode binaire.


Pour tester Telnet en mode Linemode, vous pouvez exécuter le serveur fictif pour écouter sur le port local, par exemple en utilisant netcat (installez-le si nécessaire) :

nc -vl localhost 1234

puis dans un autre terminal, connectez-vous à votre serveur en utilisant :

telnet localhost 1234

et commencez à saisir du texte pour vérifier quand les données sont reçues.

Appuyez sur Control-] (^]) et tapez quit pour terminer.


Il est également possible d'envoyer des données en utilisant le shell Bash en utilisant la commande suivante :

cat > /dev/tcp/127.0.0.1/1234

puis commencez à saisir du texte. Lorsque vous avez terminé, appuyez sur Control-D.

3voto

James A. Rosen Points 25774

La réponse dépend de ce que prend en charge l'extrémité distante :

  1. Nouveau Mode Ligne où le traitement des caractères est effectué en local tandis que le distant envoie uniquement et reçoit des paquets de contrôle lors de la saisie et reçoit toute la ligne lors de la saisie d'un caractère de fin de ligne (par exemple en appuyant sur ENTER).
  2. Caractère par caractère où chaque caractère est transmis à mesure qu'il est tapé.
  3. Ancien mode en ligne complet - les lignes entièrement achevées sont transmises.

Ce que l'extrémité distante fait avec l'entrée reçue dépend de l'extrémité distante. La plupart des processus serveur (HTTP, SMTP, POP, IMAP) ont tendance à attendre le caractère de fin de ligne (EOF, saut de ligne) avant de traiter l'entrée. D'autres peuvent attendre la fin de fichier (EOF, ^D) avant de commencer à traiter l'entrée.

1voto

Kinglisi Points 11

Après avoir connecté en utilisant telnet, appuyez sur le caractère d'échappement (généralement CTRL + ]). Si vous ne connaissez pas votre touche d'échappement telnet, tapez telnet sans paramètres et il l'affichera, à partir de là vous pouvez revenir en arrière ou utiliser open [ip] [port],

Une fois connecté, appuyez sur la touche d'échappement (CTRL + ]) qui vous renverra à telnet où vous pouvez ensuite taper

Si vous souhaitez revenir à l'envoi de chaque touche, appuyez simplement sur une touche aléatoire qui ne fait pas partie de la liste de commandes de telnet.

-1voto

John Boker Points 36308

Essayez d'utiliser la commande send après avoir ouvert une connexion avec l'hôte de destination.

send "some text"

Pour plus d'informations sur send, consultez man telnet.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X