def __init__(self, filename):
self.filename = filename
try:
if not stat.S_ISREG(os.stat(filename).st_mode):
raise IOError("GZIP detection works only for regular files")
self.f = gzip.open(filename,"rb")
magic = self.f.read(4)
except IOError:
self.f = open(filename,"rb")
magic = self.f.read(4)
if magic == b"\xa1\xb2\xc3\xd4": #big endian
self.endian = ">"
self.reader = _RawPcapOldReader(self.f, self.endian)
elif magic == b"\xd4\xc3\xb2\xa1": #little endian
self.endian = "<"
self.reader = _RawPcapOldReader(self.f, self.endian)
elif magic == b"\x0a\x0d\x0d\x0a": #PcapNG
self.reader = _RawPcapNGReader(self.f)
else:
raise Scapy_Exception("Not a pcap capture file (bad magic)")
评论列表
文章目录