磁力連結可以包括一個或多個參數,之間用'&'隔開。參數的順序在檔案在標準中沒有記錄。有一些參數的值對於客戶端正確解析磁力連結很重要。
magnet:? xl = [位元組大小]& dn = [檔案名(已編碼URL)]& xt = urn: tree: tiger: [ TTH hash(Base32)]
參數
編輯
dn(顯示名稱)- 檔名
xl(絕對長度)- 檔案位元組數
xt(eXact Topic)- 包含檔案雜湊函數值的URN
as(可接受來源) - 線上檔案的網絡連結
xs(絕對資源)- P2P連結
kt(關鍵字)- 用於搜尋的關鍵字
mt(檔案列表)- 連結到一個包含磁力連結的元檔案 (MAGMA - MAGnet MAnifest (頁面存檔備份,存於互聯網檔案館))
tr(Tracker地址)- BT下載的Tracker URL
xt參數
編輯
磁力連結的這部分最重要。用於尋找和驗證包含着磁力連結中的檔案。
TTH(Tiger Tree雜湊函數)
TigerTree雜湊函數被用在包括Direct Connect (protocol)(英語:Direct Connect (protocol))和Gnutella2(英語:Gnutella2)在內的幾個網絡中。
xt=urn:tree:tiger:[ TTH Hash(Base32(英語:Base32))]
SHA-1(安全雜湊演算法1)
Gnutella和Gnutella2(英語:Gnutella2)使用的雜湊函數。
xt=urn:sha1:[ SHA-1 Hash(Base32(英語:Base32))]
BitPrint(英語:BitPrint)
這種雜湊函數包含一個SHA-1雜湊函數和一個TTH雜湊函數,用"."隔開。
Gnutella和Gnutella2(英語:Gnutella2)使用。
xt=urn:bitprint:[ SHA-1 Hash(Base32(英語:Base32))].[ TTH Hash(Base32(英語:Base32))]
eD2k Hash(eDonkey2000)雜湊函數
eDonkey2000使用的雜湊函數演算法。
xt=urn:ed2k:[ ED2K Hash(Hex)]
AICH(進階智能型損壞處理)
不是正式的磁力連結的一部分。eDonkey2000使用的雜湊函數演算法,用於儲存和控制下載完成、正在下載的檔案的完整性。
xt=urn:aich:[ aich Hash(Base32(英語:Base32))]
Kazaa(英語:Kazaa)雜湊函數
FastTrack(英語:FastTrack)使用的雜湊函數演算法。
xt=urn:kzhash:[ Kazaa(英語:Kazaa) Hash(Hex)]
BTIH(BitTorrent Info Hash)
BitTorrent使用的雜湊函數演算法。出於向下相容的考慮,客戶端需要同時支援被Base32(英語:Base32)編碼過[1]的BTIH雜湊結果。
xt=urn:btih:[ BitTorrent Info Hash(Hex)]
MD5(資訊-摘要演算法5)
Gnutella2(英語:Gnutella2)支援的雜湊函數演算法。
xt=urn:md5:[ MD5 Hash(Hex)]
CRC-32(循環冗餘校驗)
不是正式的磁力連結的一部分。沒有任何已知的P2P網絡使用。
xt=urn:crc32:[ CRC-32(Base10)]
網絡連結至檔案
編輯
有兩種可以插入到磁力連結的下載連結作為直接或者備用資源。
普通連結(as)
編輯
"as"的意思是"acceptable source"。這種連結指向從網絡伺服器的直接下載。只有在指定的逾時後才會連結,防止伺服器過載。客戶端在考慮向伺服器傳送下載請求前會先花一定時間在P2P網絡中定位檔案。
as=[檔案的網路連結(已編碼URL)]
P2P連結(xs)
編輯
連結可以是連結到磁力連結的檔案的HTTP(SHTTP、FTP、SFTP等)下載源、檔案的P2P源地址或是hub(使用DC++時)地址。對於這一連結,客戶端嘗試直接連結,並請求檔案或其來源,有時會同時請求二者。這一欄位常被P2P客戶端用來儲存源。參照中可能包含檔案hash。
內容定址網絡(CAN)URL
這類連結被Gnutella還有G2應用程式使用,基於RFC 2168。
xs=http://[客户端地址]:[客户端端口]/uri-res/N2R?[包含一个文件hash的URN ]
例:
xs=http://192.0.2.0.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
連結到DirectConnect(英語:DirectConnect) hub並為檔案尋找源
這一連結立即將DirectConnect客戶端連接到剛才討論的hub。
xs=dchub://[hub 地址]:[hub端口]
為Gnutella2(英語:Gnutella2)上的檔案參照基於網絡的源快取
這種情況下,連結包含的點不是客戶端IP或直接來源,而是來源快取。這樣的快取並不包含檔案本身,而是儲存了其他客戶端的IP,這些客戶端連接到快取來下載相同的檔案。一旦客戶端連接到快取並獲得其他替代來源的IP,其自身IP就會存入到快取中,然後繼續連接到下一個快取,繼續請求替代來源。這種系統類似於BitTorrent tracker的操作。
xs=http://cache.freebase.be/[ SHA-1 hash ]
參照ED2K源
xs=ed2k://[客户端地址]:[客户端端口]/[ed2k hash]/[文件大小]/
檔案列表(mt)
編輯
這是一個導向一系列連連結列表(也許是個網頁)的連結……
mt=http://weblog.foo/all-my-favorites.rss
或者是一個URN
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
關鍵字(kt)
編輯
該部分代表了一串用於P2P網絡搜尋用的關鍵字
kt=martin+luther+king+mp3
Tracker地址(tr)
編輯
Tracker URL.用於在不需要分散式雜湊表支援下下載BitTorrent資源。
tr=http://example.com/announce
補充格式(x.)
編輯
對於實驗性且自補的非正式選項,可以使用字首x後加已選擇的第二個字母
x.[新參數名]=[新參數資料(已編碼URL)]
參陣列
編輯
通過在每個參數後編號並用"."來分隔允許一個Magnet連結中包含多個檔案及它們URN,檔名和雜湊函數值。
magnet:?xt.1=[第一個檔案的URN]&xt.2=[第二個檔案的URN]