def main(options, args): port = int(options.port) my_addr = (options.ip, port) local_ip = options.my_ip logs_path = options.path logs_level = options.logs_level or default_logs_level logging_conf.setup(logs_path, logs_level) print 'Using the following plug-ins:' print '*', options.routing_m_file print '*', options.lookup_m_file routing_m_name = '.'.join(os.path.split(options.routing_m_file))[:-3] routing_m_mod = __import__(routing_m_name, fromlist=['']) lookup_m_name = '.'.join(os.path.split(options.lookup_m_file))[:-3] lookup_m_mod = __import__(lookup_m_name, fromlist=['']) global dht dht = pymdht.Pymdht(my_addr, logs_path, routing_m_mod, lookup_m_mod, '', logs_level) global geo_score if options.geoip_mode: import geo geo_score = geo.Geo(local_ip) else: geo_score = None global server server = SocketServer.TCPServer(('', port), SessionHandler) while not stop_server: server.handle_request()
def main(options, args): my_addr = (options.ip, int(options.port)) logs_path = options.path logging_conf.setup(logs_path, logs_level) print 'Using the following plug-ins:' print '*', options.routing_m_file print '*', options.lookup_m_file routing_m_name = '.'.join(os.path.split(options.routing_m_file))[:-3] routing_m_mod = __import__(routing_m_name, fromlist=['']) lookup_m_name = '.'.join(os.path.split(options.lookup_m_file))[:-3] lookup_m_mod = __import__(lookup_m_name, fromlist=['']) dht = pymdht.Pymdht(my_addr, logs_path, routing_m_mod, lookup_m_mod) print '\nType "exit" to stop the DHT and exit' print 'Type an info_hash (in hex digits): ', while (1): input = sys.stdin.readline()[:-1] if input == 'exit': dht.stop() break try: info_hash = identifier.Id(input) except (identifier.IdError): print 'Invalid input (%s)' % input continue print 'Getting peers for info_hash %r' % info_hash global start_ts start_ts = time.time() dht.get_peers(None, info_hash, _on_peers_found)
def main(options, args): port = int(options.port) my_addr = (options.ip, port) if not os.path.isdir(options.path): if os.path.exists(options.path): print 'FATAL:', options.path, 'must be a directory' return print options.path, 'does not exist. Creating directory...' os.mkdir(options.path) logs_path = options.path logs_level = options.logs_level or default_logs_level logging_conf.setup(logs_path, logs_level) print 'Using the following plug-ins:' print '*', options.routing_m_file print '*', options.lookup_m_file print 'Path:', options.path print 'Private DHT name:', options.private_dht_name routing_m_name = '.'.join(os.path.split(options.routing_m_file))[:-3] routing_m_mod = __import__(routing_m_name, fromlist=['']) lookup_m_name = '.'.join(os.path.split(options.lookup_m_file))[:-3] lookup_m_mod = __import__(lookup_m_name, fromlist=['']) exp_m_name = '.'.join(os.path.split(options.exp_m_file))[:-3] exp_m_mod = __import__(exp_m_name, fromlist=['']) global dht dht = pymdht.Pymdht(my_addr, logs_path, routing_m_mod, lookup_m_mod, exp_m_mod, options.private_dht_name, logs_level) random_lookup_delay = options.random_lookup_delay while random_lookup_delay > 0: time.sleep(float(random_lookup_delay)) target = identifier.RandomId() dht.get_peers(None, target, None, 0) global geo_score if options.geoip_mode: try: import geo geo_score = geo.Geo(local_ip) except: print "---------------------------------------" print "Geo module FAILED: you cannot use --geo" print "---------------------------------------" raise else: geo_score = None global server server = SocketServer.TCPServer(('', port), SessionHandler) while not stop_server: server.handle_request()
def main(options, args): id_str, ip, port_str = args port = int(port_str) node_to_extract = Node((ip, port), Id(id_str)) table_extractor = TableExtractor(node_to_extract) logs_path = os.path.join(os.path.expanduser("~"), ".pymdht") logging_conf.setup(logs_path, logging.DEBUG) reactor = minitwisted.ThreadedReactor(table_extractor.main_loop, 7000, table_extractor.on_datagram_received) reactor.start() time.sleep(30)
def main(options, args): id_str, ip, port_str = args port = int(port_str) node_to_extract = Node((ip, port), Id(id_str)) table_extractor = TableExtractor(node_to_extract) logs_path = os.path.join(os.path.expanduser('~'), '.pymdht') logging_conf.setup(logs_path, logging.DEBUG) reactor = minitwisted.ThreadedReactor(table_extractor.main_loop, 7000, table_extractor.on_datagram_received) reactor.start() time.sleep(30)
def main(options, args): id_str, v, ip, port_str = args id_ = Id(id_str) port = int(port_str) bootstrap_node = Node((ip, port), id_, version=v) mcrawler = MultiCrawler(bootstrap_node) logs_path = '.'# os.path.join(os.path.expanduser('~'), '.pymdht') logging_conf.setup(logs_path, logging.DEBUG) reactor = minitwisted.ThreadedReactor( mcrawler.main_loop, 7005, mcrawler.on_datagram_received, task_interval=EXTRACTION_DELAY / 2) # NO THREADED REACTOR reactor._lock.acquire = lambda :None reactor._lock.release = lambda :None reactor.run2()
def main(options, args): id_str, v, ip, port_str = args id_ = Id(id_str) port = int(port_str) bootstrap_node = Node((ip, port), id_, version=v) mcrawler = MultiCrawler(bootstrap_node) logs_path = '.' # os.path.join(os.path.expanduser('~'), '.pymdht') logging_conf.setup(logs_path, logging.DEBUG) reactor = minitwisted.ThreadedReactor(mcrawler.main_loop, 7005, mcrawler.on_datagram_received, task_interval=EXTRACTION_DELAY / 2) # NO THREADED REACTOR reactor._lock.acquire = lambda: None reactor._lock.release = lambda: None reactor.run2()
def main(options, args): ip, port_str = args port = int(port_str) bootstrap_node = Node((ip, port), RandomId()) mcrawler = MultiCrawler(bootstrap_node) logs_path = '.'# os.path.join(os.path.expanduser('~'), '.pymdht') logging_conf.setup(logs_path, logging.DEBUG) reactor = minitwisted.ThreadedReactor( mcrawler.main_loop, 7005, mcrawler.on_datagram_received, task_interval=.005) reactor.start() try: time.sleep(20000) except: pass
def main(options, args): port = int(options.port) my_addr = (options.ip, port) logs_path = options.path logging_conf.setup(logs_path, logs_level) print 'Using the following plug-ins:' print '*', options.routing_m_file print '*', options.lookup_m_file routing_m_name = '.'.join(os.path.split(options.routing_m_file))[:-3] routing_m_mod = __import__(routing_m_name, fromlist=['']) lookup_m_name = '.'.join(os.path.split(options.lookup_m_file))[:-3] lookup_m_mod = __import__(lookup_m_name, fromlist=['']) global dht dht = pymdht.Pymdht(my_addr, logs_path, routing_m_mod, lookup_m_mod) server = SocketServer.TCPServer(('', port), SessionHandler) server.serve_forever()
def main(options, args): port = int(options.port) my_addr = (options.ip, port) logs_path = options.path logs_level = options.logs_level or default_logs_level logging_conf.setup(logs_path, logs_level) print "Using the following plug-ins:" print "*", options.routing_m_file print "*", options.lookup_m_file routing_m_name = ".".join(os.path.split(options.routing_m_file))[:-3] routing_m_mod = __import__(routing_m_name, fromlist=[""]) lookup_m_name = ".".join(os.path.split(options.lookup_m_file))[:-3] lookup_m_mod = __import__(lookup_m_name, fromlist=[""]) global dht dht = pymdht.Pymdht(my_addr, logs_path, routing_m_mod, lookup_m_mod, "", logs_level) global server server = SocketServer.TCPServer(("", port), SessionHandler) global stop_server stop_server = False while not stop_server: server.handle_request()
def __init__(self, filename): self._lock = threading.Lock() self._is_done = False self._pinged_ips = set() self._pinged_addrs = set() self._ok_addrs = set() self._file = open(filename) self.reactor = ThreadedReactor( self._main_loop, PORT, self._on_datagram_received) self.reactor.start() def is_done(self): with self._lock: done = self._is_done return done def stop_and_get_result(self): self.reactor.stop() return sorted(list(self._ok_addrs)) if __name__ == '__main__': logging_conf.setup('.', logging.DEBUG) bc = BootstrapChecker(sys.argv[1]) while not bc.is_done(): time.sleep(1) time.sleep(3) result = bc.stop_and_get_result() for addr in result: print addr[0], addr[1]
import sys #sys.path.append('.') sys.path.append('../..') from socket import inet_ntoa import os import time import pcap import dpkt import core.message as message from logging import DEBUG, CRITICAL import core.logging_conf as lc lc.setup('.', CRITICAL) import parsers.cdf as cdf print '************** Check parser config *******************' ip = '192.16.125.245' port = 7000 conf = [ ['0', (ip, port)], ['1', (ip, port+1)], ['2', (ip, port+2)], ['3', (ip, port+3)], ['4', (ip, port+4)], ['5', (ip, port+5)],
self._pinged_addrs.add(datagram.addr) datagrams_to_send.append(datagram) return TIMEOUT, datagrams_to_send def _on_datagram_received(self, datagram): addr = datagram.addr if addr in self._pinged_addrs: self._pinged_addrs.remove(addr) self._ok_addrs.add(addr) return TIMEOUT, [] def is_done(self): with self._lock: done = self._is_done return done def stop_and_get_result(self): self.reactor.stop() return sorted(list(self._ok_addrs)) if __name__ == "__main__": logging_conf.setup(".", logging.DEBUG) bc = BootstrapChecker(sys.argv[1]) while not bc.is_done(): time.sleep(1) time.sleep(3) result = bc.stop_and_get_result() for addr in result: print addr[0], addr[1]
if addr in self._pinged_addrs: self._pinged_addrs.remove(addr) self._ok_addrs.add(addr) return TIMEOUT, [] def is_done(self): with self._lock: done = self._is_done return done def stop_and_get_result(self): self.reactor.stop() return sorted(list(self._ok_addrs)) if __name__ == '__main__': logging_conf.setup('.', logging.DEBUG) if len(sys.argv) > 1: input_filename = sys.argv[1] else: input_filename = INPUT_FILE output_filename = 'bootstrap.backup.release-%d.%d.%d' % (PYMDHT_VERSION) bc = BootstrapChecker(input_filename) while not bc.is_done(): time.sleep(1) time.sleep(3) result = bc.stop_and_get_result() output_file = open(output_filename, 'w') for addr in result: print >> output_file, addr[0], addr[1]