Как сгенерировать пакет UDP

58717
portoalet

Я хочу сгенерировать пакет UDP для тестирования программы, что эквивалентно использованию telnet для проверки порта TCP (Может ли telnet генерировать пакет UDP?)

Как я могу это сделать?

19

5 ответов на вопрос

30
Satanicpuppy

Одним словом: Netcat

Netcat - инструмент для такого рода вещей.

Вы можете поменять любой порт, который вы выберете, с помощью пакетов UDP, например:

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

(53 номер вашего порта)

Или вы можете отправить фактический файл или сказать ему, чтобы он связывал этот порт и слушал как службу, или как вам угодно.

13
jamis

If you want to merely send one UDP packet with some specified data, as opposed to Satanicpuppy's answer which continuously sends random data, you can do:

echo "foo" | nc -w1 -u 111.22.333.4 20000 
По какой-то причине он отправляет несколько пакетов «X» перед отправкой «foo». Используя `/ dev / udp`, избегайте этого. OrangeDog 7 лет назад 0
4
Criggie

This one is good if you are trying to work with large packets. netcat uses 1024 bytes in UDP mode.

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

UDP mode, to port 2090 at address, with a packet length of 1550 bytes.

This is from the nmap package, or is sometimes packaged as nping separately.

Further info is at https://nmap.org/book/nping-man-general-operation.html

4
jacknad

Если вы используете Bash, вы можете использовать его /dev/udpвиртуальную файловую систему, например:

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

Бесстыдно повторно использовал этот ответ на вопрос «Как отправить только один пакет UDP с Netcat?»

-1
User

Вы всегда можете использовать программы терминала UDP. Большинство из них также могут отправлять / получать TCP. Например, у скриптового терминала Docklight есть такая возможность. И затем вы отправляете данные так же, как отправляете их на последовательный порт.