web-dev-qa-db-fra.com

Comment générer un paquet UDP

Je souhaite générer un paquet UDP pour tester un programme, ce qui revient à utiliser Telnet pour tester le port TCP (Telnet peut-il générer un paquet UDP?)

Comment puis-je faire ceci?

19
Lydon Ch

Un mot: Netcat

Netcat est l'outil de prédilection pour ce genre de chose.

Vous pouvez filtrer le port de votre choix avec des paquets UDP avec quelque chose comme:

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

(53 est votre numéro de port)

Vous pouvez également envoyer un fichier réel ou lui demander de lier ce port et d’écouter en tant que service, ou ce que vous préférez.

30
Satanicpuppy

Si vous voulez simplement envoyer un paquet UDP avec des données spécifiées, par opposition à la réponse de Satanicpuppy qui envoie en permanence des données aléatoires, vous pouvez faire:

echo "foo" | nc -w1 -u 111.22.333.4 20000
14
jamis

Celui-ci est bon si vous essayez de travailler avec de gros paquets. netcat utilise 1024 octets en mode UDP.

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

Mode UDP, à mettre en communication 2090 à l'adresse, avec une longueur de paquet de 1550 octets.

Cela provient du paquet nmap, ou est parfois empaqueté séparément.

Plus d’informations sur: https://nmap.org/book/nping-man-general-operation.html

4
Criggie

Si vous utilisez Bash, vous pouvez utiliser son système de fichiers virtuel /dev/udp, comme ceci:

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

Réutilisé sans vergogne de cette réponse à "Comment envoyer un seul paquet UDP avec netcat?"

4
jacknad