18

我正在尝试通过 python 中的 pcap 文件进行解析。我的目标是能够提取 TCP 或 UDP 文件的类型以及它们开始/结束的时间。是否有人对任何某些包可能有用的建议以及他们的文档或关于编写它的一般建议有什么建议?

4

2 回答 2

20

我会使用python-dpkt。这是文档

这就是我所知道的一切,虽然很抱歉。

#!/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上的项目,文档在这里

于 2013-08-15T17:01:40.397 回答
10

您可能想从scapy开始。

于 2013-08-15T16:50:56.757 回答