將 ASCII 檔案行轉換為 NetCat 的二進位封包

將 ASCII 檔案行轉換為 NetCat 的二進位封包

我有一個 ASCII 文件,如下所示:

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

我想要做的是將其每一行作為一個二進位 TCP 段的有效負載與 NetCat 一起發送。

為了將文件中的數字轉換為其二進位表示形式,我使用 Perl,print pack("c", <STDIN>);這樣我就可以輕鬆地轉換整個文件(逐個數字)。我也知道如何發送它,cat file | netcat localhost 9999但此命令將整個內容作為有效負載發送到一個段落中。

如何將原始文件的每一行(轉換為二進位)作為新的 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

相關內容