[英]Live packet capture on linux
我想知道是否有可能实时捕获网络数据包并将其保存到例如python中的变量中。 我需要一些信息来获取它,而不是将其保存到文件中。
我需要捕获http数据包并获取源地址及其内容(应该是html代码),以从中提取文本,然后对该信息进行其余的工作。 没有必要将每个数据包保存到文件中,因为整个过程会更慢。 我一直在寻找很长一段时间的任何工具来做到这一点,但没有成功。 请,如果您知道有什么工具可以帮助我做到这一点,请写下它。
我确定您已经看过有关处理PCAP文件的库的链接 。 现在的问题是如何实时获取而不存储在文件中。
可能最简单的方法是使用FIFO
$ mkfifo /tmp/tcpdump.fifo
现在您可以捕获数据并将其输入到名为fifo的数据中
$ sudo tcpdump -s0 -i eth0 -f /tmp/tcpdump.fifo tcp port 80
并且在您的python程序中,您可以按照链接中的说明打开“ /tmp/tcpdump.fifo”作为输入文件。
另外,您可以尝试在程序中打开'/ dev / stdin'并从那里读取数据。 然后,您可以使用Shell并跳过名为fifo的中间件,将PCAP数据直接传递到stdin中。
$ sudo tcpdump -s0 -i eth0 -f - tcp port 80 | ./youprogram.py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.