2013-04-18 55 views
1

我需要编写一个网络嗅探器和我已经决定使用Python来做到这一点。我知道演出不会是最好的,对于这种软件我应该使用c或C++,但是一个好的原型只会对我有用。所以,我一直在与libpcap的图书馆为Python 2.7,我能得到我所需要的,如信息: IP源和目的,相对端口,时间戳和数据包长度。 但问题是,我注意到,高流量有一个巨大的数据包丢弃。Scapy - 如何获取统计信息?

必须说,整个过程中,这些信息被插入到一个MySQL数据库。

因此,在我进一步与Scapy 之前,我想了解是否有一种方法可以测量在此详细说明期间将丢失多少数据包。

谢谢

+0

或者,如果我或者能看到多少数据包在在键盘后结束类似于tcpdump的总结时尚被丢弃中断CTRL-C有类似捕获 373包'43包通过过滤器 300的数据包丢弃收到由内核 ' – MixturaDementiae

回答

0

我已经以间接方式修复。我正在使用

tcpdump -G 3600 -i interface -n -w %H-Capture.pcap 

从这里我收集所有关于丢弃的数据包和过滤的统计信息等。请介意,尽量减少丢弃的数据包的百分比选项 -n是至关重要的,因为它基本上是说不是解决报文中的每个主机捕获 -G在3600秒创建每个小时即文件,而不是主要讲述循环。

此后,我只是去Scapy的从CLI和Scapy的我做到以下几点:

x = rdpcap("myfile") 
len_x = len(x) 

for i in x: 
    if TCP in i: 
     i.show() 

这将只显示TCP数据包。如果你愿意,你也可以用同样的方法过滤UDP或ICMP等等。