Scapy - 如何获取统计数据?

时间:2013-04-18 13:45:12

标签: python scapy sniffer

我需要编写网络嗅探器,我决定使用python来完成它。我知道性能不是最好的,对于这种软件我应该使用c或c ++,但是一个好的原型只会为我做。所以我一直在使用libpcap库for python 2.7,我可以得到我需要的所有信息,例如: IP源和目标,具有相对端口,时间戳和数据包长度。 但问题是,我注意到流量很大的时候有一个巨大的数据包丢失。

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

所以在我进一步研究Scapy 之前,我想了解是否有办法测量在此细化过程中我将丢失多少数据包

谢谢

1 个答案:

答案 0 :(得分:0)

我已经间接修复了。我正在使用

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

从这里我收集有关丢弃数据包和过滤等的所有统计信息。请注意,最小化丢弃数据包的百分比选项 -n至关重要,因为它基本上表示不会解析捕获的数据包中的每个主机 -G基本上告诉我们每小时创建一个文件超过3600秒。

在此之后,我只是从cli和scapy去Scapy,我会做以下事情:

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

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

这将仅显示TCP数据包。如果需要,您也可以以相同的方式过滤UDP或ICMP等。