通过netcat连接发送字符串

13
我有两个虚拟机正在运行,其中一个正在监听连接,另一个通过Python子进程调用连接到 nc <ip> <port>。我想发送一行文本到连接上然后关闭它。我知道如何发送文件 cat <file> | nc <ip> <port>,但如何只使用nc命令发送一行文本(不使用文件)呢?

抱歉,我的表述不够清晰。我不想以任何方式使用文件,只想使用字符串。 - Crizly
有没有办法捕获到传输到另一个正在监听连接的虚拟机上的数据(文本)? - Manjunath Raddi
4个回答

26

试试这个:

echo -n 'Line of text' | nc <ip> <port>

您还可以使用临时文件语法:

cat <(echo "Line of test") | nc <ip> <port>

使用 cat | nc -vl localhost 命令,您可以让 netcat 从标准输入发送数据到客户端,例如您的键盘。这在与客户端建立连接后起作用。 - Matthias Braun

3

@cb0所展示的临时文件语法也可以这样使用:

nc <ip> <port> <( echo "Line of text" )

不必使用cat命令。这样做将创建一个包含“文本行”的临时文件,然后将其重定向到netcat命令。


1
创建文件test.txt,文件内容为1。
netcat [ip-address] [port] <test.txt

到达目的地时,您必须有一些东西来听这个。


0

对于某些服务器,在发送消息后需要使用-N标志退出nc

echo "text" | nc -N <ip> <port>

-N 选项在输入流结束后关闭网络套接字。有些服务器需要这样才能完成它们的工作。
--《nc 命令手册》

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接