将 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

相关内容