Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- from ..anonymization.community import TunnelCommunity
- from .endpoint import EndpointListener
- class EndpointMonitor(EndpointListener):
- def __init__(self, endpoint):
- super(EndpointMonitor, self).__init__(endpoint)
- self.received_data_map = {}
- endpoint.add_listener(self)
- def on_packet(self, packet):
- source_address, data = packet
- if data.startswith('FF'.decode('hex')):
- prefix = '\x00' + TunnelCommunity.version + TunnelCommunity.master_peer.key.key_to_hash()
- timeline = self.received_data_map.get(prefix, [])
- timeline.append((time.time(), source_address[0], 1, len(data)))
- self.received_data_map[prefix] = timeline
- else:
- timeline = self.received_data_map.get(data[:22], [])
- timeline.append((time.time(), source_address[0], ord(data[22]), len(data)))
- self.received_data_map[data[:22]] = timeline
- def as_csv(self):
- out = ",".join(['community', 'timestamp', 'source_address', 'message_id', 'message_length']) + "\n"
- for k, v in self.received_data_map.iteritems():
- for timestamp, source_address, message_id, message_length in v:
- out += k[2:].encode('hex') + "," + ",".join([str(e) for e in [timestamp, source_address, message_id, message_length]]) + "\n"
- return out
Add Comment
Please, Sign In to add comment