19

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

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

5 ответов5

30

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

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

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

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

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

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

13

Если вы хотите просто отправить один пакет UDP с некоторыми указанными данными, в отличие от ответа Satanicpuppy, который непрерывно отправляет случайные данные, вы можете сделать:

echo "foo" | nc -w1 -u 111.22.333.4 20000
4

Это хорошо, если вы пытаетесь работать с большими пакетами. netcat использует 1024 байта в режиме UDP.

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

Режим UDP, порт 2090 по адресу, длина пакета 1550 байт.

Это из пакета nmap или иногда отдельно упаковывается как nping.

Дополнительная информация на https://nmap.org/book/nping-man-general-operation.html

4

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

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

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

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .