这个问题已经有了答案:
How to parse packets in a python library? [closed]
4个答案
我试图通过python中的pcap文件进行解析。我的目标是能够拉出TCP或UDP文件的类型,以及它们开始/结束的时间。在任何特定的软件包中,是否有任何人有任何建议可以使用,以及为他们提供的文档或一般的书面建议?

最佳答案

我将使用python dpkt。
以下是文档:http://www.commercialventvac.com/dpkt.html
这就是我所知道的,尽管抱歉。

#!/usr/local/bin/python2.7

import dpkt

counter=0
ipcounter=0
tcpcounter=0
udpcounter=0

filename='sampledata.pcap'

for ts, pkt in dpkt.pcap.Reader(open(filename,'r')):

    counter+=1
    eth=dpkt.ethernet.Ethernet(pkt)
    if eth.type!=dpkt.ethernet.ETH_TYPE_IP:
       continue

    ip=eth.data
    ipcounter+=1

    if ip.p==dpkt.ip.IP_PROTO_TCP:
       tcpcounter+=1

    if ip.p==dpkt.ip.IP_PROTO_UDP:
       udpcounter+=1

print "Total number of packets in the pcap file: ", counter
print "Total number of ip packets: ", ipcounter
print "Total number of tcp packets: ", tcpcounter
print "Total number of udp packets: ", udpcounter

更新:
项目日期:GitHub,文档:here

07-27 18:03