Esempio n. 1
0
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()
Esempio n. 2
0
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)
Esempio n. 3
0
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()
Esempio n. 4
0
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()
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
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()
Esempio n. 9
0
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()
Esempio n. 10
0
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
Esempio n. 11
0
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()
Esempio n. 12
0
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()
Esempio n. 13
0
    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]
Esempio n. 14
0
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)],
Esempio n. 15
0
            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]
Esempio n. 16
0
        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]