我有一个可以管理的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/

10-12 16:05