【问题标题】:Live packet capture on linuxlinux上的实时数据包捕获
【发布时间】:2013-12-12 22:53:56
【问题描述】:

我想知道是否有可能实时捕获网络数据包并将其保存到变量中,例如在 python 中。 我需要一些信息才能从中获取,而不是将其保存到文件中。

我需要捕获 http 数据包并获取源地址及其内容(应该是 html 代码),以便从中仅提取文本,然后根据该信息完成其余工作。 没有理由将每个数据包保存到文件中,因为整个过程会更慢。我一直在寻找任何工具来做到这一点,但没有成功。 请,如果您知道任何可以帮助我做到这一点的工具,请写下来。

【问题讨论】:

标签: linux networking live capture packet


【解决方案1】:

我相信您已经看到this link 介绍了一个用于处理 PCAP 文件的库。现在的问题是如何实时获取而不存储在文件中。

可能最简单的方法是使用先进先出

$ mkfifo /tmp/tcpdump.fifo

现在您可以捕获数据并将其输入到命名的 fifo 中

$ sudo tcpdump -s0 -i eth0 -f /tmp/tcpdump.fifo tcp port 80

并且在您的 python 程序中,您可以按照链接中的说明打开“/tmp/tcpdump.fifo”作为输入文件。

或者,您可以尝试在程序中打开“/dev/stdin”并从那里读取数据;然后,您可以使用 shell 将 PCAP 数据直接通过管道传输到标准输入,并跳过名为 fifo 的中间。

$ sudo tcpdump -s0 -i eth0 -f - tcp port 80 | ./youprogram.py

【讨论】:

  • @vit0 那么你可以接受答案,或者至少投赞成票!
  • 抱歉,我尝试过投票,但声誉太低 :(。已批准为答案 :)
猜你喜欢
  • 2021-11-29
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多