磁力連結

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` 的連結在舊軟體中可能只識別其中一部分。