So erhalten Sie eine udp-Antwort mit netcat

9

Ich versuche etwas zu tun wie:

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

Ich kann sehen, dass die Antwort vom Server (mit tcpdump) kommt, nachdem diese Zeile ausgeführt wurde.

Meine response.txt bleibt jedoch leer.

Gibt es einen Weg, um es zu bekommen?

scarrydeveloper151012
quelle
Haben Sie eine Firewall? Das Paket über tcpdump zu sehen bedeutet nicht, dass es akzeptiert wird.
Zoredache

Antworten:

5

Netcat beginnt mit dem "Sprechen" von UDP (Standard ist TCP), indem die Befehlszeilenoption -u angegeben wird. Hier ist ein Beispiel für die Verbindung mit einem RFC 867-Zeitserver über UDP. Beachten Sie, dass zuerst die IP-Adresse oder der DNS-Name des anderen Hosts und dann die Portnummer angegeben werden - genau wie bei den meisten Telnet-Programmen. Nachdem die Verbindung hergestellt wurde, müssen Sie wahrscheinlich die Eingabetaste drücken, damit der Zeitserver Ihnen die aktuelle Uhrzeit sendet. (Vielleicht ist das dein Problem)

nc -u igor.alcpress.com 13

Do 15. September 14:41:57 2005

Da UDP kein verbindungsorientiertes Protokoll ist, bleibt die Verbindung "offen", bis Sie das Programm durch Drücken von Strg-C beenden.

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

Antwortet es, wenn Sie die Ausgabe nicht umleiten?
Versuchen :echo "request" | nc -u 1.1.1.1 9999 | tee response.txt


quelle
Hallo und danke für deine Antwort. Die Befehlssequenz, wie Sie sie geschrieben haben, wird direkt nach ihrer Ausführung auf meinem Computer beendet. Das Problem ist jedoch für mich gelöst. Ich wusste nicht, dass ich einfach nc -u 1.1.1.1 9999 ausführen und Daten in nc senden / empfangen kann, während es ausgeführt wird.