码迷,mamicode.com
首页 > 编程语言 > 详细

python读取pcap包

时间:2019-06-17 23:10:25      阅读:1006      评论:0      收藏:0      [点我收藏+]

标签:int   read   span   bsp   main   pre   other   进制转换   data   

import struct
 
class FileConvert(object):
    ‘‘‘ test python file‘‘‘
    def __init__(self):
        self.aa = 0
        self.bb = 0
        
    def convertPcapToHex(self,debugFlg=0):
        infile = open("test.pcap",rb)
        outfile = open("testRslt.txt",w)
        a = int(0)
 
        while True:
            a = int(0)
            a = infile.read(4)
            #print(type(a))
            #print(len(a))
            dataSaveNum = len(a)
            if not a:
                break
            if(len(a) == 4):
                pass
            elif(len(a) != 0):
                loopTime = 4 - len(a)
                while (loopTime > 0):
                    loopTime = loopTime - 1
                    a = a + b\x00
            z = struct.unpack(i,a)
            unNeg = z[0] & 0xFFFFFFFF #负数的验证
            if(dataSaveNum == 4):
                outfile.write("%08x"%unNeg)
                dataSaveNum = 0
            
            while(dataSaveNum > 0):
                saveData = unNeg&0xFF
                #保留单个字节
                #outfile.write("%08x"%unNeg)
                unNeg = unNeg >> 8
                dataSaveNum = dataSaveNum - 1
                outfile.write("%02x"%saveData)
                
            if(debugFlg == 1):
                outfile.write("\n")
                
        infile.close()
        outfile.close()
      
    def convertHexToPcap(self):
        infile = open("testRslt.txt",r)
        outfile = open("another.pcap",wb)
        #for a in infile.read():
        while True:
            a = infile.read(8)
            #print(type(a))
            #print(b);
            if not a:
                break
            if(len(a)!= 0):
                #16进制转换10进制数
                b=int(a,16)
                covertValue = struct.pack("L",b)
                outfile.write(covertValue)
            #outfile.write("%s"%a)
            #outfile.write("\n")
        infile.close()
        outfile.close()
 
if __name__ == __main__:
    fileCvrt = FileConvert()
    fileCvrt.convertPcapToHex()
    fileCvrt.convertHexToPcap()

 

 

开源项目:https://github.com/rshk/python-pcapng

python读取pcap包

标签:int   read   span   bsp   main   pre   other   进制转换   data   

原文地址:https://www.cnblogs.com/hshy/p/11042697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!