安装CICFlowMeter用于提取流量特征
代码在github去下载即可。
源开发语言是java版的,也有大牛用python改写了一版。
之前用过python版本的,这次不知道怎么用不了了,搜了一下,python3.7和3.8版本跑起来都有问题,可以用3.6之前的去试一下。
昨天用Mac装的java版,装完测试一直有问题,遂放弃!
最好使用win或者ubuntu安装,个人在win上装了,可用。
步骤:
装好java、idea(eclipse没试)、maven、gradle;
把jnetpcap/win/jnetpcap-1.4.r1425文件夹中的jnetpcap.jar复制到主文件夹中;
然后按照README操作;
我这边出现了“Could not find org.jnetpcap:jnetpcap:1.4.1.“的错误,
将build.gradle文件中的
compile group: 'org.jnetpcap', name: 'jnetpcap', version:'1.4.1'
更改为
compile group: 'jnetpcap', name: 'jnetpcap', version:'1.4.r1425-1g'
最终能够实现提取特征。
建议:如果有大量文件需要处理,可编写脚本自动实现。后边写了我在贴上来。
### 2024/01/18 0:09 于公司宿舍
""" cicflowmeter只能作用于pcap文件, 写个脚本实现pcapng文件批量转换为pcap。 """ import os import subprocess input_path = r"C:\Users\Admini\Desktop\data" output_path = r"C:\Users\Admini\Desktop\data1" if not os.path.exists(output_path) : os.makedirs(output_path) for file in os.listdir(input_path) : # print(file) input_file = os.path.join(input_path, file) output_file = os.path.join(output_path, file[0:-2]) # print(output_file) # tshark -F pcap -r {pcapng file} -w {pcap file} # 调用tshark command = ['tshark', '-F', 'pcap', '-r', input_file, '-w', output_file] subprocess.call(command) print(f'{file} has done successfully.')
第二部分,需要将当前目录切换到cicflowmeter的bin下,os.chdir()。如果直接用目录+cfm.bat调用不行,报错。
可能是依赖的一些jar包需要切换过来才能导入。
1 """ 2 基于cicflowmeter提供的可执行脚本文件 3 批量将pcap导出为csv 4 """ 5 6 import os 7 import subprocess 8 9 input_path = r"C:\Users\Admini\Desktop\data1" 10 output_path = r"C:\Users\Admini\Desktop\power_traffic_feature_csv" 11 12 if not os.path.exists(output_path) : 13 os.makedirs(output_path) 14 15 for file in os.listdir(input_path) : 16 # print(file) 17 input_file = os.path.join(input_path, file) 18 19 # 调用cfm.bat 20 os.chdir(r"C:\Users\Admini\Desktop\CICFlowMeter-4.0\CICFlowMeter-4.0\bin") 21 command = ['cfm.bat', f"{input_file}", f"{output_path}"] 22 subprocess.call(command) 23 24 print(f'{file} has done successfully.')
效果如下图: