Ejemplo n.º 1
0
    def __init__(self, node_id=None, rtable=[], addr=None):
        if node_id == None:
            self.node_id = generate_node_id()
        else:
            self.node_id = node_id

        self.rtable = rtable
        self.protocol = DHTProtocol(self.node_id, self.rtable, addr)
Ejemplo n.º 2
0
 def __init__(self, node_id = None, rtable = [], addr = None):
     if node_id == None:
         self.node_id = generate_node_id()
     else:
         self.node_id = node_id
     
     self.rtable = rtable
     self.protocol = DHTProtocol(self.node_id, self.rtable, addr)    
Ejemplo n.º 3
0
 def __init__(self,
              node_id=None,
              routing_table=None,
              address=None,
              **kwargs):
     self._node_id = node_id if node_id is not None else generate_node_id()
     self._routing_table = routing_table if routing_table is not None else []
     self._protocol = DHTProtocol(self._node_id, self._routing_table,
                                  address, **kwargs)
Ejemplo n.º 4
0
 def client(self):
     if len(self.rtable) == 0:
         nodes = []
         self.rtable = [[] for i in range(TABLE_NUM)]
         for inital_node in INITIAL_NODES:
             nodes.append([utility.generate_node_id(), inital_node])
         nodes.append([self.node_id, self.socket.getsockname()])
         self.add_nodes_to_rtable(nodes)
     
     while True:
         self.find_nodes_using_rtable()
         self.save_rtable()
         time.sleep(4)
Ejemplo n.º 5
0
    def client(self):
        if len(self.rtable) == 0:
            nodes = []
            self.rtable = [[] for i in range(TABLE_NUM)]
            for inital_node in INITIAL_NODES:
                nodes.append([utility.generate_node_id(), inital_node])
            nodes.append([self.node_id, self.socket.getsockname()])
            self.add_nodes_to_rtable(nodes)

        while True:
            self.find_nodes_using_rtable()
            self.save_rtable()
            time.sleep(4)
Ejemplo n.º 6
0
    def find_node(self, node):
        target_node_id = generate_node_id()

        query = {
            "t": generate_id(DHTProtocol.TRANS_ID_LENGTH),
            "y": "q",
            "q": "find_node",
            "a": {
                "id": self.node_id,
                "target": target_node_id
            }
        }

        self._send_message(query, tuple(node[1]))
Ejemplo n.º 7
0
 def find_node(self, node):
     target_node_id = utility.generate_node_id()
         
     query = {}
     query["t"] = utility.generate_id(TRANS_ID_LENGTH)
     query["y"] = "q"
     query["q"] = "find_node"
     query["a"] = {}
     query["a"]["id"] = self.node_id
     query["a"]["target"] = target_node_id
     query = bencode(query)
     
     try:
         self.socket.sendto(query, tuple(node[1]))
     except:
         pass
Ejemplo n.º 8
0
    def find_node(self, node):
        target_node_id = utility.generate_node_id()

        query = {}
        query["t"] = utility.generate_id(TRANS_ID_LENGTH)
        query["y"] = "q"
        query["q"] = "find_node"
        query["a"] = {}
        query["a"]["id"] = self.node_id
        query["a"]["target"] = target_node_id
        query = bencode(query)

        try:
            self.socket.sendto(query, tuple(node[1]))
        except:
            pass
Ejemplo n.º 9
0
    def __client(self):
        if len(self.routing_table) == 0:
            nodes = []
            self.routing_table = map(lambda i: [],
                                     range(DHTProtocol.TABLE_NUM))

            for initial_node in INITIAL_NODES:
                nodes.append([generate_node_id(), initial_node])

            nodes.append([self.node_id, self._get_sock_name()])
            self.add_nodes_to_routing_table(nodes)

        while True:
            self.find_nodes_using_routing_table()
            self.save_routing_table()

            time.sleep(4)
Ejemplo n.º 10
0
 def __send_handshake(self):
     self.__send((chr(19) + "BitTorrent protocol" +
                  from_hex_to_byte("0000000000100005") + self.__info_hash +
                  generate_node_id()))