标签: dpkt

使用 scapy 解析 pcap 文件

我正在比较 scapy 和 dpkt 的速度。我有一个包含 pcap 文件的目录,我解析并计算每个文件中的 http 请求。这是 scapy 代码:

import time
from scapy.all import *

def parse(f):
 x = 0
 pcap = rdpcap(f)
 for p in pcap:
    try:
        if p.haslayer(TCP) and p.getlayer(TCP).dport == 80 and p.haslayer(Raw):
            x = x + 1
    except:
        continue
print x

if __name__ == '__main__':\

  path = '/home/pcaps'
  start = time.time()
  for file in os.listdir(path):
    current = os.path.join(path, file)
    print current
    f = open(current)
    parse(f)
    f.close()
 end = time.time()
 print (end - start)
Run Code Online (Sandbox Code Playgroud)

与 …

python parsing scapy python-2.7 dpkt

7
推荐指数
1
解决办法
8167
查看次数

如何解决 dpkt 无法解码 .pcap 文件的问题

我在我的机器上运行此代码时遇到问题,但它在我学校的 linux 机器上运行良好。

我得到的错误是:

Traceback (most recent call last):  
File "wireshark_02.py", line 74, in <module>   
    main()  
  File "wireshark_02.py", line 43, in main  
 input_data = dpkt.pcap.Reader(open(file_name,'r'))  
  File "C:\Users\Slava\AppData\Local\Programs\Python\Python36-32\lib\site-packages\dpkt\pcap.py", line 244, in __init__    
    buf = self.__f.read(FileHdr.__hdr_len__)  
  File "C:\Users\Slava\AppData\Local\Programs\Python\Python36- 
 32\lib\encodings\cp1252.py", line 23, in decode    
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]   
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position
125: character maps to <undefined>    
Run Code Online (Sandbox Code Playgroud)

我已经安装了运行 pip install dpkt 的 dpkt。

我可以做些什么来在我的机器上完成这项工作,或者我需要使用我学校的电脑吗?

python-3.x dpkt

5
推荐指数
1
解决办法
1157
查看次数

python dpkt pcap如何获取协议?

我有一个实验室,我需要找到一个巨大的 pcap 文件的每个数据包的协议。我打算制作一本字典来保存所有这些内容,但我的第一步只是使用 dpkt 提取信息。看起来 ip.get_proto 是我想要的,但我错过了一些点。我正在阅读http://www.commercialventvac.com/dpkt.html#mozTocId839997

#!/usr/bin/python
# -*- coding: utf-8 -*-

import dpkt
import socket
import sys
import datetime

import matplotlib.pyplot as ploot 
import numpy as arrayNum 
from collections import Counter 

packets = 0 

protocolDist = {}  

f = open('bob.pcap')
#f = open('trace1.pcap')
pcap = dpkt.pcap.Reader(f) 

print "Maj Version:  " , dpkt.pcap.PCAP_VERSION_MAJOR  
print "Min Version:  " , dpkt.pcap.PCAP_VERSION_MINOR 
print "Link Layer "    , pcap.datalink() 
print "Snap Len:    "  , pcap.snaplen 

# How many packets does the trace …
Run Code Online (Sandbox Code Playgroud)

protocols pcap dpkt

3
推荐指数
1
解决办法
5940
查看次数

Python Scapy vs dpkt

我试图Scapy从一开始就使用Python来分析数据包.在最近的搜索中,我发现python中有另一个名为的模块dpkt.使用此模块,我可以解析数据包的各个层,创建数据包,读取.pcap文件并写入.pcap文件.我发现他们之间的区别是:

  1. 缺少实时数据包嗅探器 dpkt

  2. 某些字段需要使用struct.unpackin 解压缩dpkt.

我还缺少其他差异吗?

python scapy dpkt

3
推荐指数
1
解决办法
3927
查看次数

从mac地址转换为十六进制字符串,反之亦然-python 2和3

我有我想作为原始数据发送到 dpkt 的 MAC 地址。dpkt 包希望我将数据作为十六进制字符串传递。所以,假设我有以下 mac 地址: '00:de:34:ef:2e:f4',写为: '00de34ef2ef4',我想编码成类似的东西 '\x00\xdeU\xef.\xf4',反向翻译将提供原始数据。

在 Python 2 上,我找到了几种使用encode('hex')and decode('hex')的方法来做到这一点 。但是,此解决方案不适用于 Python 3。

我很难找到一个代码片段来支持这两个版本。

我会对此提供帮助。

谢谢

python mac-address python-2.7 python-3.x dpkt

3
推荐指数
1
解决办法
8382
查看次数

在OS X上使用pypcap和dpkt的Python嗅探器

我实际上是想用python嗅探数据包(使用pypcap和dpkt).

我尝试了以下方法:

import dpkt, pcap
pc = pcap.pcap()     # construct pcap object
pc.setfilter('src host X.X.X.X or dst host X.X.X.X')
for timestamp, packet in pc:
    print dpkt.ethernet.Ethernet(packet)
Run Code Online (Sandbox Code Playgroud)

但是当我启动脚本时没有任何反应......我错过了什么吗?

在OS X Yosemite上使用Python 2.7(10.10)

python pcap packet-sniffers dpkt

2
推荐指数
1
解决办法
7244
查看次数

使用dpkt解析pcap文件

我正在做一个任务,我必须解析一个 pcap 文件,我正在使用 dpkt 来做到这一点。我是网络新手,所以我很难调试代码/入门。

第一组代码:

import dpkt

filename='test.pcap'
f = open(filename)
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
    eth = dpkt.ethernet.Ethernet(buf)
    ip = eth.data
    tcp = ip.data

f.close()
Run Code Online (Sandbox Code Playgroud)

错误是 AttributeError: 'str' 对象没有属性 'data'

因此,从之前的 Stackoverflow 中,我发现也许我应该“跳过 dpkt 以太网解码并直接跳转到 IP 解码”,因此我更改了代码并转到:

import dpkt

filename='test.pcap'

f = open(filename)
pcap = dpkt.pcap.Reader(f)

for ts,buf in pcap:
    ip = dpkt.ip.IP(buf)
    tcp = ip.data

f.close()
Run Code Online (Sandbox Code Playgroud)

它现在给我的错误是“UnpackError: invalid header length”

不太明白如何继续前进,任何帮助将不胜感激

python networking pcap python-2.7 dpkt

0
推荐指数
1
解决办法
5321
查看次数