Skip to content

Instantly share code, notes, and snippets.

@qstokkink
Created April 19, 2018 16:42
Show Gist options
  • Save qstokkink/878fc3a42e4cf69af19f715d00f009b8 to your computer and use it in GitHub Desktop.
Save qstokkink/878fc3a42e4cf69af19f715d00f009b8 to your computer and use it in GitHub Desktop.
Message monitor for IPv8
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
community timestamp source_address message_id message_length
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155881.3 43.226.7.178 245 205
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155881.55 88.88.196.216 245 205
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155882.02 217.63.62.160 245 205
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155882.51 88.88.196.216 1 166
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155882.51 88.88.196.216 1 166
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155882.56 88.88.196.216 1 196
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155882.57 88.88.196.216 1 196
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155884.88 203.56.247.37 245 205
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155885.16 73.46.254.180 245 205
7d510d1f81f63deaf2020464d1abdf0eb167e02e 1524155885.85 184.158.42.61 245 205
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.02 83.149.70.6 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.03 95.211.155.142 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.03 83.149.70.6 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.03 95.211.155.142 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.05 95.211.155.131 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.05 95.211.155.142 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.05 95.211.155.131 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.07 83.149.70.6 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.07 83.149.70.6 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.07 95.211.155.142 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.07 95.211.155.131 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.08 95.211.155.131 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.56 131.180.27.155 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.56 131.180.27.155 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.56 131.180.27.155 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.6 83.223.173.113 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.61 131.180.27.155 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.62 131.180.27.155 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.62 131.180.27.155 2 889
7e313685c1912a141279f8248fc8db5899c5df5a 1524155880.7 83.223.173.113 2 1009
7e313685c1912a141279f8248fc8db5899c5df5a 1524155882.21 73.108.156.73 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155882.37 73.108.156.73 2 969
7e313685c1912a141279f8248fc8db5899c5df5a 1524155883.77 68.149.149.38 249 279
7e313685c1912a141279f8248fc8db5899c5df5a 1524155884.04 46.148.11.33 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155884.09 46.148.11.33 2 1089
7e313685c1912a141279f8248fc8db5899c5df5a 1524155884.57 203.56.247.37 249 279
7e313685c1912a141279f8248fc8db5899c5df5a 1524155884.88 203.56.247.37 245 298
7e313685c1912a141279f8248fc8db5899c5df5a 1524155885.27 203.56.247.37 2 969
7e313685c1912a141279f8248fc8db5899c5df5a 1524155885.74 184.158.42.61 245 298
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.04 95.211.155.142 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.04 95.211.155.142 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.04 83.149.70.6 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.05 83.149.70.6 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.07 95.211.155.131 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.07 95.211.155.131 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.57 131.180.27.155 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.57 131.180.27.155 245 174
3199e175392a876e8cc7fbcabe5c948eeaeafa23 1524155880.57 131.180.27.155 245 174
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment