如何使用 python 将 pcap 转换为 CSV

问题描述 投票:0回答:4

我需要使用 python 代码将驱动器上的 pcap 文件转换为 csv 文件(我知道如何使用wireshark UI 来完成此操作),但我需要通过 python 代码来完成此操作,

我已经尝试过这段代码:

import os
os.system("tshark -r mirai.pcap -T fields -e ip.src -e frame.len -e     ip.proto -E separatorr=, -E occurrence=f > traffic.csv")

我得到一个结果文件,但它是空的。

任何人都可以帮助我吗?

python csv pcap
4个回答
0
投票

当我将命令更改为:

时,它就开始工作了:
os.system("tshark -r mirai.pcap -T fields -e ip.src -e frame.len -e     ip.proto -E separator=, -E occurrence=f > traffic.csv")

即将

separatorr
更改为
separator

通常我使用包

pyshark
(https://pypi.org/project/pyshark/) 在 python 中处理我的 pcap 文件。


0
投票

这是最简单的方法(我认为)

os.system ('tshark -r'+in_file +'>'+ out_file +'.txt')

哪里

in_file = <name of your pcap file>
out_file = <name of your output file>

PS:仅在 python 3 上测试过


0
投票

我使用

subprocess
按以下方式完成:

import subprocess

with open('/path/to/csv_file.csv','w') as f:
    subprocess.run("tshark -r /path/to/pcap_file.pcap -T fields
    -e frame.number -e ip.src -e ip.dst 
    -E header=y -E separator=/t".split(), stdout =f)

stdout
被写入
'/path/to/csv_file.csv'


0
投票

您可以使用 tshark 和 Python 来自动执行此操作。

import os

for file in os.listdir('/path/to/pcap/files/'):
    output_csv = file + '.csv'
    os.system(f"tshark -N n -r ./test/{file} -T fields -e frame.number -e _ws.col.Time -e _ws.col.Source -e _ws.col.Destination -e _ws.col.Protocol -e _ws.col.Length -e _ws.col.Info -E header=y -E separator=, > {output_csv}")
    

您没有获得空 csv 的原因是您尚未安装可供 CLI 使用的 tshark。在Linux中。尝试 apt-install tshark, 在 Windows 中,您必须安装 Wireshark,然后将环境变量设置为安装文件夹,以使 tshark 激活到您的命令提示符。

© www.soinside.com 2019 - 2024. All rights reserved.