Comment obtenir une réponse UDP avec Netcat

9

J'essaie de faire quelque chose comme:

echo "request" | nc -u 1.1.1.1 9999 > response.txt

Je peux voir que la réponse vient du serveur (avec tcpdump) après avoir exécuté cette ligne.

Cependant, mon response.txt reste vide.

Y a-t-il un moyen de l'obtenir?

scarrydeveloper151012
la source
As-tu un pare-feu? Voir le paquet via tcpdump ne signifie pas qu'il sera accepté.
Zoredache

Réponses:

5

Netcat commence à "parler" UDP (la valeur par défaut est TCP) en spécifiant l'option de ligne de commande -u. Voici un exemple de connexion à un serveur horaire RFC 867 à l'aide d'UDP. Notez que l'adresse IP ou le nom DNS de l'autre hôte est spécifié en premier et le numéro de port est spécifié en second - tout comme la plupart des programmes Telnet. Une fois la connexion établie, vous devrez probablement appuyer sur la touche Entrée pour que le serveur de temps vous envoie l'heure actuelle. (c'est peut-être votre problème)

nc -u igor.alcpress.com 13

Jeu. 15 sept. 14:41:57 2005

Comme UDP n'est pas un protocole orienté connexion, la connexion restera "ouverte" jusqu'à ce que vous arrêtiez le programme en appuyant sur Ctrl-C.

================================================== ====================

Répond-il si vous ne redirigez pas la sortie?
essayez:echo "request" | nc -u 1.1.1.1 9999 | tee response.txt


la source
Bonjour et merci pour votre réponse. La séquence de commandes telle que vous l'avez écrite se termine juste après son exécution sur ma machine. Cependant, le problème est résolu pour moi. Je ne savais pas que je pouvais simplement exécuter nc -u 1.1.1.1 9999 et envoyer / recevoir des données à l'intérieur de nc pendant son fonctionnement. Merci encore une fois