我有一个可以管理的Wi-Fi探针。在一个线程中,我必须通过SSH运行tcpdump并通过ssh隧道获取结果并将其写入我自己的计算机上的pcap文件中。
现在,我运行tcpdump命令,并返回结果,但是我不知道如何将其写入PCAP文件,并且我实际上不知道返回的数据是什么类型。
self.dataSSH=self.TunnelSSH_data.OuvrirTunnelSSH() #self.dataSSH is a paramiko.SSHClient object
sin, sout, serr = self.dataSSH.exec_command(self.ssh_command, get_pty=True)
while self.running :
for l in self.line_buffered(sout):
print(l)
def line_buffered(self,f):
line_buf = ""
while not f.channel.exit_status_ready():
line_buf += to_unicode(f.read(1))
if line_buf.endswith('\n'):
yield line_buf
line_buf = ''
ssh_command的内容是:
"tcpdump -i " + <Interface to monitor> + " -B 8192 -s 500 -U -n -w -"
今天,我只是将结果打印为unicode,但不知道如何将其写入pcap文件。
最佳答案
我将必须看到调用“ tcpdump”的代码才能为您提供明确的答案,但是您应该知道“ tcpdump”已经为您提供了将结果写入“ .pcap”文件的选项。例:tcpdump -s 0 port ftp or ssh -i eth0 -w mycap.pcap
上面的代码将结果转储到“ mycap.pcap”中(取自https://linuxexplore.com/2012/06/07/use-tcpdump-to-capture-in-a-pcap-file-wireshark-dump/)。
因此,我要尝试的是在探针中生成pcap,然后将pcap跟踪传输到您的计算机,然后在确实需要时从探针磁盘上删除pcap文件。
关于c - 如何将在远程计算机上实时运行的tcpdump结果导出到计算机上的pcap文件中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56441956/