Преобразовать строку файла ASCII в двоичный пакет для NetCat

У меня есть файл ASCII, который выглядит следующим образом:

36,36,0,1
36,36,0,2
...

Я хочу отправлять каждую его строку как полезную нагрузку одного двоичного сегмента TCP с помощью NetCat.

Чтобы преобразовать число из файла в его двоичное представление, я использую Perl print pack ("c", ); , поэтому я могу легко преобразовать весь файл (число за числом). Я также знаю, как отправить его с файлом cat | netcat localhost 9999 , но эта команда отправляет весь контент как полезную нагрузку в одном сегменте.

Что я могу сделать, чтобы отправить каждую строку исходного файла (преобразованного в двоичный) как новый сегмент TCP?

0
15.02.2016, 22:09
1 ответ

Хорошо, я нашел решение.

Чтобы отправить каждые n байтов из файла в качестве нового сегмента TCP, можно использовать команду, аналогичную приведенной ниже:

for i in `seq 1 $num_of_segments`
  do
  head -c $i file_name | tail -c 1 | netcat localhost 9999
done

Опция -cn в head и tail команды указывают конвейерную передачу первого или последнего n байтов.

0
28.01.2020, 04:53

Теги

Похожие вопросы