对某一类数量巨大(比如接近一千万)的种类进行分批次数量统计, 如总数=批次1+批次2+……批次n :param root_path: :return:
(root_path,classname)
| 38 | print(sum_dict) |
| 39 | |
| 40 | def run_big_data(root_path,classname): |
| 41 | ''' |
| 42 | 对某一类数量巨大(比如接近一千万)的种类进行分批次数量统计, |
| 43 | 如总数=批次1+批次2+……批次n |
| 44 | :param root_path: |
| 45 | :return: |
| 46 | ''' |
| 47 | sum = 0 |
| 48 | sum_list=[] #储存不同批次的计数结果 |
| 49 | sum_dict = {} |
| 50 | dir_list = os.listdir(root_path) |
| 51 | print(dir_list) |
| 52 | for dir in dir_list: |
| 53 | if dir != classname :continue |
| 54 | else: |
| 55 | file_list = glob.glob(root_path + '\\' + dir + '\\*.pcap') |
| 56 | flen=len(file_list) |
| 57 | print(f'类别{dir}的Packet数正在统计,该类packet数为{flen}') |
| 58 | for i in range(10): |
| 59 | for file in file_list[int(i*flen/10):int((i+1)*flen/10)]: |
| 60 | # print(file) |
| 61 | packet_num_in_file = len(rdpcap(file)) |
| 62 | sum += packet_num_in_file |
| 63 | print(f'批次{i}的Packet num = {sum}') |
| 64 | sum_list.append(sum) |
| 65 | sum = None |
| 66 | gc.collect() |
| 67 | print(sum_list) |
| 68 | ''' |
| 69 | USTC-TFC2016 的benign类统计数据 |
| 70 | {'BitTorrent': 15000, 'Facetime': 6000, 'FTP': 360000, 'Gmail': 25000, 'MySQL': 200000, 'Outlook': 15000, |
| 71 | 'Skype': 12000, 'SMB-1': 771886, 'SMB-2': 153566, 'Weibo-1': 756067, 'Weibo-2': 151674, 'Weibo-3': 151069, |
| 72 | 'Weibo-4': 151249, 'WorldOfWarcraft': 140000} |
| 73 | |
| 74 | USTC-TFC2016 的malware类统计数据 |
| 75 | {'Cridex': 461452, 'Geodo': 213238, 'Htbot': 169371, 'Miuref': 81208, 'Neris': 497857, 'Nsis-ay': 351537, |
| 76 | 'Shifu': 499777, 'Tinba': 21912, 'Virut': 437549, 'Zeus': 86198} |
| 77 | ''' |
| 78 | |
| 79 | ''' |
| 80 | CICIDS2017的数据 |
| 81 | BotNet:18168 BruteForce:274938 DoS_DDoS: 2440595 Infiltration: 148956 PortScan:1604317 WebAttack:40791 Normal:11709971 |
| 82 | ''' |
| 83 | |
| 84 | if __name__ == '__main__': |
| 85 | # path=path_list[0] |