将包含转义字符的 cat 文件发送到 netcat

将包含转义字符的 cat 文件发送到 netcat

我正在尝试使用文件中写入的一些 HTTP 请求来测试网络服务器。

GET / HTTP/1.1\r\n\r\n

现在我正在将该文件提供给netcat如下内容:

cat files | nc localhost 80

但是,\r\n文件中的字符直接传输到 Web 服务器(导致出现 4 个字符,即 '\'、'r'、'\'、'n')。我该如何提供该文件以便正确转义字符?

答案1

\r\n是 printf 语句中用来生成 DOS/Windows 使用的 CarridgeReturn/NewLine 行尾的代码。

由于您使用的是 cat,因此您使用的是某些仅用作\n行尾的 unix 变体。但您不必让该字符出现在文件中。只需尝试删除这些值(在行尾留下真正的换行符)。

现在的示例测试文件 =

GET / HTTP/1.1
  blah-blah

GET / HTTP/1.1
  blah2

或者,如果您确实必须解释\r\n文件中嵌入的值,则可以使用 printf 实用程序解释该文件,即

$ cat printf_inputtest.txt
GET / HTTP/1.1\r\n\r\n
GET / HTTP/1.1\r\n\r\n
$ printf "$( < printf_inputtest.txt )"
GET / HTTP/1.1


GET / HTTP/1.1

$ 

我希望这有帮助。

相关内容