ASCIIファイルラインをNetCat用のバイナリデータパケットに変換する

ASCIIファイルラインをNetCat用のバイナリデータパケットに変換する

次のASCIIファイルがあります。

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

私が望むのは、NetCatを使用してバイナリTCPセグメントのペイロードに各行を送信することです。

ファイル内の数値をバイナリ表現に変換するには、Perlを使用してファイルprint pack("c", <STDIN>);全体を簡単に変換できます(数値で)。送信方法もわかりますが、cat file | netcat localhost 9999このコマンドはコンテンツ全体を1つのセグメントにペイロードとして送信します。

ソースファイル(バイナリに変換)の各行を新しいTCPセグメントに送信するにはどうすればよいですか?

答え1

さて、それで解決策を見つけました。

ファイル内の各バイトを新しいTCPセグメントに送信するには、n次のようなコマンドを使用できます。

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

-c n最初のバイトまたは最後のバイトをパイプするかどうかを示すコマンドのオプション。headtailn

関連情報