使用python-libtorrent检索对等列表而不下载torrent

Com*_*ion 3 python libtorrent

我使用Python的libtorrent搜索以检索torrent的对等方IP。我尝试使用代码:

import libtorrent as lt
import time

ses = lt.session()
ses.listen_on(6881, 6891)
info = lt.torrent_info('test.torrent')
h = ses.add_torrent({'ti': info, 'save_path': './'})
print 'starting', h.name()
while (not h.is_seed()):
    s = h.status()
    p = h.get_peer_info()
    for i in p:
        print i.ip

    print "\n\n"

    sys.stdout.flush()

    time.sleep(1)

print h.name(), 'complete'
Run Code Online (Sandbox Code Playgroud)

它或多或少起作用,但是我有两个问题:

  1. 种子下载。
  2. 在收到一个对等列表之前,循环执行了数十次。

你能帮助我吗?

非常感谢。

Arv*_*vid 6

没有一个规范的“对等列表”。当前有您连接的对等体。但是,“群中每个人都有”。

libtorrent可以告诉您您已连接的同位体,这意味着他们完成了uTP或TCP 3向握手。

通常需要一些时间来增加对等连接。您需要了解有关对等方的信息,需要尝试与它们建立连接,并且它们需要启动并且没有完整的对等方列表。这就是为什么您没有立即与一群同龄人建立联系的原因。

听起来您对整个群中的所有同行都感兴趣。您不太可能找到每个同龄人。对等方可能不会向相同的跟踪者宣告,而是通过PEX或DHT彼此查找。许多同伴无法连接,找到他们的唯一方法是让他们找到您,而他们可能对此并不感兴趣。

现在,尚不清楚如果您对下载种子不感兴趣,为什么要使用对等IP。既然您不是,那为什么还要连接它们呢?

您可以简单地调用get_full_peer_list(),但是,在python绑定中不可用。您也可以一次又一次地向跟踪器宣布并收集生成的IP。