我正在尝试使用Python解析pcap文件。我的目标是能够提取TCP或UDP文件的类型以及它们的开始/结束时间。请问是否有任何建议,包括哪些软件包可能有用并附带文档,或者关于编写代码的一般性建议?
我会使用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
你可能想要从scapy开始。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd4 in position 0: invalid continuation byte
我们需要使用二进制模式打开文件:dpkt.pcap.Reader(open(filename,'rb'))
- korst1k