我试图在 python 中处理 tcpdump 输出。
我需要的是运行 tcpdump(它捕获数据包并为我提供信息)并读取输出并处理它。
问题是 tcpdump 一直在运行,我需要在它输出后立即读取数据包信息并继续执行它。
我尝试查看 python 的子进程并尝试使用 popen 调用 tcpdump 并通过管道传输标准输出,但它似乎不起作用。
有关如何进行此操作的任何指示。
import subprocess
def redirect():
tcpdump = subprocess.Popen("sudo tcpdump...", stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
while True:
s = tcpdump.stdout.readline()
# do domething with s
redirect()