基本信息
源码名称:python读取pcap文件.py
源码大小:4.32KB
文件格式:.py
开发语言:Python
更新时间:2020-12-23
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


读取pcap文件,解析相应的信息,为了在记事本中显示的方便,把二进制的信息转换为json格式



if __name__ == '__main__':
    fpcap = open('600S-pcap_for_replay-20181126.pcap', 'rb')
    ftxt = open('result2.txt', 'w')
    string_data = fpcap.read() # pcap文件包头解析  pcap_header = {}
    pcap_header['magic_number'] = string_data[0:4]
    pcap_header['version_major'] = string_data[4:6]
    pcap_header['version_minor'] = string_data[6:8]
    pcap_header['thiszone'] = string_data[8:12]
    pcap_header['sigfigs'] = string_data[12:16]
    pcap_header['snaplen'] = string_data[16:20]
    pcap_header['linktype'] = string_data[20:24] # 把pacp文件头信息写入result.txt  ftxt.write("Pcap文件的包头内容如下: \n") for key in ['magic_number', 'version_major', 'version_minor', 'thiszone',  'sigfigs', 'snaplen', 'linktype']:
        ftxt.write(key " : "  repr(pcap_header[key]) '\n') # pcap文件的数据包解析  step = 0  packet_num = 0  packet_data = []
    pcap_packet_header_list = []
    i = 24   while (i < len(string_data)): # 数据包头各个字段bytes  GMTtime = string_data[i:i 4]
        MicroTime = string_data[i 4:i 8]
        caplen = string_data[i 8:i 12]
        lens = string_data[i 12:i 16] # 数据包各个字段的正常表示  packet_GMTtime = struct.unpack('I', GMTtime)[0]
        packet_GMTtime = time_trans(packet_GMTtime)
        packet_MicroTime = struct.unpack('I', MicroTime)[0]
        packet_caplen = struct.unpack('I', caplen)[0]
        packet_len = struct.unpack('I', lens)[0] # 数据包头对象  print(string_data[i:i 4]) print(string_data[i 4:i 8]) # print( string_data[i   12:i   16])  # print(struct.unpack('I', string_data[i:i   4])[0])  # print(struct.unpack('I', string_data[i   4:i   8])[0])  # print(struct.unpack('I', string_data[i   12:i   16])[0])  # 数据包各个字段的正常表示  packet_GMTtime = struct.unpack('I', GMTtime)[0]
        packet_GMTtime = time_trans(packet_GMTtime)
        packet_MicroTime = struct.unpack('I', MicroTime)[0]
        packet_caplen = struct.unpack('I', caplen)[0]