如何使用 java 从磁铁链接创建 torrent 文件?

Posted

技术标签:

【中文标题】如何使用 java 从磁铁链接创建 torrent 文件?【英文标题】:How to create torrent file from magnet link using java? 【发布时间】:2018-02-19 19:57:34 【问题描述】:

所以我想开发一个新的 Java 项目,将磁铁 URI 转换为 .torrent 文件,但是我找不到这样做的方法,基本上我把磁铁 URI 分成了几块:

使用的 URI:

magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&dn=Leaves+of+Grass+by+Walt+Whitman.epub&tr=udp%3A%2F%2Ftracker.example4.com%3A80&tr=udp%3A%2F%2Ftracker.example5.com%3A80&tr=udp%3A%2F%2Ftracker.example3.com%3A6969&tr=udp%3A%2F%2Ftracker.example2.com%3A80&tr=udp%3A%2F%2Ftracker.example1.com%3A1337

崩溃:

磁铁:?

xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36

dn=Leaves+of+Grass+by+Walt+Whitman.epub

tr=udp%3A%2F%2Ftracker.example4.com%3A80

tr=udp%3A%2F%2Ftracker.example5.com%3A80

tr=udp%3A%2F%2Ftracker.example3.com%3A6969

tr=udp%3A%2F%2Ftracker.example2.com%3A80

tr=udp%3A%2F%2Ftracker.example1.com%3A1337

根据我使用this link 收集的信息,torrent 文件包含所需文件的文件、长度和路径,但我似乎无法从磁铁 URI 中获取。

提前致谢。

【问题讨论】:

@MarsAtomic SHA-1“加密”? @MarsAtomic 不,不是。您是说他应该反转 SHA-1 哈希吗?你这么说是不是毫无讽刺意味? 我想是的,我发现哈希和是 SHA-1 编码的 好吧,现在您会发现哈希是单向的,这意味着您无法“解码”它们。 【参考方案1】:

仅从磁力链接重新创建 .torrent 文件是不可能的。

torrent 客户端从磁力链接获取 .torrent 文件的方式是:

从跟踪器和/或 DHT 获取对等列表。 使用BEP9 - Extension for Peers to Send Metadata Files 连接到同行并下载 .torrent 元数据。

【讨论】:

感谢您的评论,好吧,让我重新表述我的问题,使用 Java,如果我有磁力链接,我如何连接到同行并获取元数据? 实现上述意味着实现一个几乎完整的 bittorrent 客户端 - 即,很可能更容易找到一种方法来使用现有的、已经完成的客户端。 我已经搜索过已经制作好的torrent客户端(比如this one),但是获取元数据抓取部分对我来说太复杂了。 这很复杂,没有办法解决。作为替代方案,您也许可以使用在线服务:btcache.mebtso.pwitorrents.orgmagnet2torrent.metorrage.infothetorrent.orgmagnet2torrent.com【参考方案2】:

不是很干净但是..

Runtime.getRuntime().exec(new String[]"cmd", "/c","start firefox " + mag);

// 需要 firefox 和默认的 torrent 处理程序。 // mag = 磁铁串

【讨论】:

以上是关于如何使用 java 从磁铁链接创建 torrent 文件?的主要内容,如果未能解决你的问题,请参考以下文章

python libtorrent 如何从 info_hash 获取 torrent 文件列表?

Libtorrent torrent->磁铁

如何用 C# 下载磁力链接?

如何以编程方式上传 torrent 文件

torrent search engine怎么用

如何在 python 中使用 urllib 下载 .torrent 文件?