磁力链接
Magnet URI
一种以内容标识而非固定服务器地址引用资源的 URI;在 BitTorrent 中通常携带信息哈希,并可附加显示名称、跟踪器和其他发现参数。
详细说明
磁力链接(Magnet URI)是一种以内容标识引用资源的 URI,形式以 `magnet:?` 开头。它不必指向存放 `.torrent` 文件的固定网页或服务器;在 BitTorrent 用途中,链接通常包含信息哈希,客户端据此寻找同一 swarm、获取种子元信息并开始请求文件分片。
最关键的参数是 exact topic,即 `xt`。BitTorrent v1 常写为 `xt=urn:btih:<info-hash>`,哈希可采用十六进制或 Base32 表示;v2 可使用 `urn:btmh:` 加带多哈希标记的完整信息哈希。一个 Magnet URI 还可包含 `dn` 显示名称、`tr` tracker 地址、`x.pe` 已知节点以及其他扩展参数,相同键可以重复出现。参数需按 URI 规则进行百分号编码。
只有 v1 信息哈希的链接并不自带文件列表、分片长度和各分片哈希。支持 BEP 9 的客户端先通过 DHT、tracker 或已知节点找到对等方,再从对等连接分块取得元信息,并以信息哈希验证其 `info` 内容。取得完整元信息后,下载过程才与打开传统 `.torrent` 文件相近。若没有可联系节点,链接即使语法正确也无法提供资源。 Magnet URI 与网页下载地址的作用不同。HTTP URL 通常定位某台服务器上的路径,磁力链接主要携带可供多个发现机制使用的标识;它并不会把文件储存在链接中,也不会自动提供匿名性、加密或恶意内容检查。`dn` 只是供界面显示的建议名称,不能作为内容真实性依据。
修改 tracker 参数或显示名称不一定改变 `xt` 指向的 BitTorrent 元信息,但改变 `info` 字典并重新计算哈希会产生新的链接主题。现代客户端对 v1、v2 和 hybrid torrent 的支持范围不同,因此同时提供 `btih` 与 `btmh` 的链接在旧软件中可能只识别其中一部分。