【发布时间】:2017-06-26 20:50:14
【问题描述】:
我想从 netcat 获取输入,用 python 脚本处理它并将处理后的数据发送回 netcat。
我试过这个:
nc 10.0.0.2 4444 | python script.py
我得到了 python 脚本的输入,但是输出到了终端 而不是回到 netcat 服务器。 (连接已打开并等待响应)
我的python脚本:
while True:
line = sys.stdin.readline()
sys.stdout.write("processed data")
有没有办法从终端或 bash 脚本执行此操作?
【问题讨论】:
-
你不能这样做,因为管道 (
|) 不允许双向通信。您可能应该研究一个名为subprocess的 Python 模块。 -
能不能直接用Python做网络通信?
socket模块与 netcat 做同样的事情:打开一个到特定地址和端口的连接,然后通过该连接发送和接收数据。 -
使用
ncat --sh-exec ...(即ncat来自nmap)