据我所知,在播种或提取 torrent 时,您的 IP 在跟踪器上,并且它会在那里保留几个小时或几天我如何使用 Libtorrent 手动告诉我的跟踪器我将不再连接到跟踪器,它应该忘记我的 IP,因为我既不播种也不吸水。任何代码位或建议将不胜感激,目前我正在使用 rasterbar 提供的 Python 绑定,但我也可以使用 C++ 代码。
2 回答
跟踪器只是 HTTP 服务(尽管设计不佳)。请参阅BitTorrent Tracker Protocol,特别是event
查询参数。在 Python 中,您可以使用urllib
.
libtorrent 在停止 torrent 或停止会话时会自动执行此操作。如果它似乎失败了,您可能希望在关闭时增加跟踪器超时。这将增加关闭延迟,但会给一些更过载的跟踪器更多时间。见session_settings::stop_tracker_timeout
。默认情况下,这是 5 秒,但有时跟踪器需要更长的时间才能做出响应,最多 30 秒。
跟踪器通常会在大约一个小时内使对等方超时,并且您需要每 30 分钟重新通知一次才能保持活力。
如果您尝试使用单独的 bittorrent 客户端将停止的事件发送到跟踪器(在这种情况下,假设您使用的任何客户端都无法将停止的事件发送到跟踪器),它可能不太可靠。
您应该在跟踪器请求中包含info-hash(即 torrent 的唯一标识符)、客户端在启动时生成的密钥、peer-id(也由客户端生成)和传输统计信息。
您可以忽略统计信息,但如果您不知道 info-hash 或客户端密钥,并且在某些情况下不知道 peer-id,则跟踪器将无法确定您的请求实际上是指您客户的跟踪器请求,它不会删除您的 IP。
在实践中,在大多数情况下,您只需知道 info-hash 和跟踪器 URL就可以让它工作。您可以通过加载 .torrent 文件、从中获取信息哈希和跟踪器 URL 来获取信息哈希。