コード例 #1
0
ファイル: ethernet.py プロジェクト: nveeser/dino
 def __init__(self, parent, buffer, idx):
     super(EthernetSNAP ,self).__init__(parent, buffer, idx)
     
     self.snap_orgid = Header.hex2int(buffer.bytes()[17:20])
     self.snap_pid = Header.hex2int(buffer.bytes()[20:22])
     
     key = (self.snap_orgid, self.snap_pid)
     self.parse_child(key, 22)
コード例 #2
0
ファイル: cdp.py プロジェクト: nveeser/dino
    def parse(self, data):
        self.addrs = []

        (count,) = struct.unpack("!I", data[0:4].tostring())
        idx = 4
        
        for i in xrange(0,count):
            
            (type, length) = struct.unpack("!BB", data[idx:idx+2].tostring())
            idx += 2
            
            protocol = Header.hex2int( data[idx:idx+length] )
            idx += length
            
            (length,) = struct.unpack("!H", data[idx:idx+2].tostring())
            idx += 2
            
            addr = data[idx:idx+length]
            idx += length        
            
            for cls in [ self.IPv4Addr, self.IPv6Addr ]:
                if cls.PROTO == protocol:
                    value = cls(addr, protocol)
                    self.addrs.append(value)

        return "(%s)" % ", ".join(map(str, self.addrs)) 
コード例 #3
0
ファイル: cdp.py プロジェクト: nveeser/dino
 def __str__(self):
     return "%s(0x%04x): %s" % (self.NAME, self.type_id, Header.hex2str(self.data))