Python 在pcap中搜索比正常搜索更快
在这段代码中,我使用rdpcap读取一个pcap,然后使用for循环对其进行迭代。通过这种方式,我获取数据包的行数据,并在每个pcaket上搜索特定的ip,如果ip与任何src_ip或dst_ip匹配,则存储该pcaket并生成一个新的过滤pcapPython 在pcap中搜索比正常搜索更快,python,python-3.x,scapy,pcap,Python,Python 3.x,Scapy,Pcap,在这段代码中,我使用rdpcap读取一个pcap,然后使用for循环对其进行迭代。通过这种方式,我获取数据包的行数据,并在每个pcaket上搜索特定的ip,如果ip与任何src_ip或dst_ip匹配,则存储该pcaket并生成一个新的过滤pcap 搜索一个600MB的文件需要5分钟的时间,我想比这快很多。我该怎么做呢。众所周知,我做事很慢。我会避免用scapy来处理大文件 最好的方法是使用tshark 例如: 如果您需要python中的结果,您可以调用它,然后在以后解析结果。Wireshark
搜索一个600MB的文件需要5分钟的时间,我想比这快很多。我该怎么做呢。众所周知,我做事很慢。我会避免用scapy来处理大文件 最好的方法是使用tshark 例如:
如果您需要python中的结果,您可以调用它,然后在以后解析结果。Wireshark中需要多长时间?至少,迭代
PcapReader
而不是使用rdpcap
tshark很酷,但是如果您需要快速解析,tcpdump应该是您的首选。对于它可以表达的过滤器,它比tshark快几个数量级。我刚刚在125MB pcap上运行了一个主机对筛选器的快速比较,使用类似的选项,tcpdump大约快50倍。
packets = rdpcap("/home/pcap_evidence/"+date+"/"+list_time[0]+"")
for data in packets:
if IP in data:
if data[IP].src == ip and data[IP].dst == ip:
list_.append(data)
tshark -r my_capture.pcap -Y "(ip.src == 192.168.1.10) && (ip.dst == 172.27.224.70)" -w /tmp/my_filtered_capture.pcap