我需要编写网络嗅探器,我决定使用python来完成它。我知道性能不是最好的,对于这种软件我应该使用c或c ++,但是一个好的原型只会为我做。所以我一直在使用libpcap库for python 2.7,我可以得到我需要的所有信息,例如: IP源和目标,具有相对端口,时间戳和数据包长度。 但问题是,我注意到流量很大的时候有一个巨大的数据包丢失。
必须说这些信息在整个过程中被插入到mysql数据库中。
所以在我进一步研究Scapy 之前,我想了解是否有办法测量在此细化过程中我将丢失多少数据包。
谢谢
答案 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等。