Guest User

Untitled

a guest
Apr 27th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. import time
  2.  
  3. from ..anonymization.community import TunnelCommunity
  4. from .endpoint import EndpointListener
  5.  
  6.  
  7. class EndpointMonitor(EndpointListener):
  8.  
  9. def __init__(self, endpoint):
  10. super(EndpointMonitor, self).__init__(endpoint)
  11. self.received_data_map = {}
  12. endpoint.add_listener(self)
  13.  
  14. def on_packet(self, packet):
  15. source_address, data = packet
  16. if data.startswith('FF'.decode('hex')):
  17. prefix = '\x00' + TunnelCommunity.version + TunnelCommunity.master_peer.key.key_to_hash()
  18. timeline = self.received_data_map.get(prefix, [])
  19. timeline.append((time.time(), source_address[0], 1, len(data)))
  20. self.received_data_map[prefix] = timeline
  21. else:
  22. timeline = self.received_data_map.get(data[:22], [])
  23. timeline.append((time.time(), source_address[0], ord(data[22]), len(data)))
  24. self.received_data_map[data[:22]] = timeline
  25.  
  26. def as_csv(self):
  27. out = ",".join(['community', 'timestamp', 'source_address', 'message_id', 'message_length']) + "\n"
  28. for k, v in self.received_data_map.iteritems():
  29. for timestamp, source_address, message_id, message_length in v:
  30. out += k[2:].encode('hex') + "," + ",".join([str(e) for e in [timestamp, source_address, message_id, message_length]]) + "\n"
  31. return out
Add Comment
Please, Sign In to add comment