我想知道是否有任何可能性来捕获网络数据包并将其保存到变量中,例如在python中。 我需要一些信息从中获取,而不是将其保存到文件中。linux上的实时数据包捕获
我需要捕获http数据包并获取源地址和它的内容(应该是一个html代码),从中只提取文本,然后对该信息执行剩余的工作。 没有理由将每个数据包保存到文件中,因为整个过程会更慢。我一直在寻找相当长的时间来为任何工具做到这一点,但没有成功。 请,如果你知道任何工具可以帮助我做到这一点,请写下来。
我想知道是否有任何可能性来捕获网络数据包并将其保存到变量中,例如在python中。 我需要一些信息从中获取,而不是将其保存到文件中。linux上的实时数据包捕获
我需要捕获http数据包并获取源地址和它的内容(应该是一个html代码),从中只提取文本,然后对该信息执行剩余的工作。 没有理由将每个数据包保存到文件中,因为整个过程会更慢。我一直在寻找相当长的时间来为任何工具做到这一点,但没有成功。 请,如果你知道任何工具可以帮助我做到这一点,请写下来。
我相信你看过this link关于一个库来处理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将PCAP数据直接输入到stdin,然后跳过名为fifo的中间程序。
$ sudo tcpdump -s0 -i eth0 -f - tcp port 80 | ./youprogram.py
感谢您的回复!我非常感谢! :) – vit0
@ vit0那么你可以接受的答案,或者至少upvote它! – abasterfield
对不起,我试过upvote但名气太少:(。批准为答案:) – vit0
'tcpdump'可能是你的工具,虽然我从来没有亲自用过python。 – admdrew
http://www.secdev.org/projects/scapy/doc/introduction.html – Blender