Wie wird ein UDP-Paket generiert?

58927
portoalet

Ich möchte ein UDP-Paket zum Testen eines Programms generieren. Dies entspricht der Verwendung von Telnet zum Testen des TCP-Ports (Kann Telnet ein UDP-Paket generieren?)

Wie kann ich das machen?

19

5 Antworten auf die Frage

30
Satanicpuppy

Ein Wort: Netcat

Netcat ist das Hilfsmittel für solche Dinge.

Sie können jeden beliebigen Port mit UDP-Paketen wie folgt stürzen:

nc -u host.example.com 53 < /dev/random 

(53 ist Ihre Portnummer)

Sie können auch eine tatsächliche Datei senden oder sie anweisen, diesen Port zu binden und als Dienst zu hören, oder was auch immer Sie möchten.

13
jamis

Wenn Sie lediglich ein UDP-Paket mit bestimmten Daten senden möchten, im Gegensatz zu Satanicpuppys Antwort, die fortlaufend zufällige Daten sendet, können Sie Folgendes tun:

echo "foo" | nc -w1 -u 111.22.333.4 20000 
Aus irgendeinem Grund sendet er einige "X" -Pakete, bevor er "foo" sendet. Verwenden Sie `/ dev / udp`, um dies zu vermeiden. OrangeDog vor 7 Jahren 0
4
Criggie

Dies ist gut, wenn Sie versuchen, mit großen Paketen zu arbeiten. netcat verwendet 1024 Byte im UDP-Modus.

nping --udp -p 2090 111.22.333.4 --data-length 1550 

UDP-Modus an Port 2090 an Adresse mit einer Paketlänge von 1550 Bytes.

Dies stammt aus dem nmap-Paket oder wird manchmal separat als nping verpackt.

Weitere Informationen finden Sie unter https://nmap.org/book/nping-man-general-operation.html

4
jacknad

Wenn Sie Bash verwenden, können Sie das /dev/udpvirtuelle Dateisystem wie folgt verwenden:

echo -n "hello" >/dev/udp/localhost/8000 

Schamlos aus dieser Antwort wieder verwendet "Wie man mit netcat nur ein UDP-Paket sendet?"

-1
User

Sie können immer UDP-Terminalprogramme verwenden. Die meisten von ihnen können auch TCP senden / empfangen. Zum Beispiel hat das Docklight Scripting Terminal diese Möglichkeit. Und dann senden Sie Daten auf dieselbe Weise wie an den seriellen Port.