请输入您要查询的百科知识:

 

词条 Magnet URI scheme
释义

  1. History

  2. Design

      URN, containing hash (xt)    Web links to the file    Manifest (mt)    Keywords (kt)    Address tracker (tr)    Supplement format (x.)    Group settings  

  3. Clients

  4. See also

  5. Notes

  6. References

  7. External links

{{Multiple issues|{{refimprove|date=January 2015}}{{Cleanup|reason = The lists of examples should be better organized; the layout is too haphazard|date=May 2012}}{{Technical|date=December 2014}}
}}

The Magnet URI scheme defines the format of magnet links, a de facto standard for identifying files by their content, via cryptographic hash value rather than by their location.

Although magnet links can be used in a number of contexts, they are particularly useful in peer-to-peer file sharing networks because they allow resources to be referred to without the need for a continuously available host, and can be generated by anyone who already has the file, without the need for a central authority to issue them. This makes them popular for use as "guaranteed" search terms within the file sharing community where anyone can distribute a magnet link to ensure that the resource retrieved by that link is the one intended, regardless of how it is retrieved.

History

The standard for Magnet URIs was developed by Bitzi in 2002, partly as a "vendor- and project-neutral generalization" of the ed2k: and freenet: URI schemes used by eDonkey2000 and Freenet, respectively, and attempts to follow official IETF URI standards as closely as possible.

Design

Magnet URIs consist of a series of one or more parameters, the order of which is not significant, formatted in the same way as query strings that ordinarily terminate HTTP URLs. The most common parameter is "xt" ("exact topic"), which is generally a URN formed from the content hash of a particular file, e.g.:

magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a

This refers to the hex-encoded SHA-1 hash of the torrent file info section in question. Note that, although a particular file is indicated, an availability search for it must still be carried out by the client application.

Other parameters defined by the draft standard are:

  • "dn" ("display name"): a filename to display to the user, for convenience
  • "kt" ("keyword topic"): a more general search, specifying search terms, rather than a particular file
  • "mt" ("manifest topic"): a URI pointing to a "manifest", e.g. a list of further items
  • application-specific experimental parameters, which must begin "x."

The standard also allows for multiple parameters of the same type to be used by appending ".1", ".2", etc. to the parameter name, e.g.:

magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7

Magnet URIs can contain multiple parameters, in any order, separated from each other by &. The format therefore looks like:

magnet:? xl = [Size in Bytes] & dn = [file name (URL encoded)] & xt = urn: tree: tiger: [ TTH hash (Base32) ]

The following parameters are supported:

  • dn (Display Name): filename
  • xl (eXact Length): size in bytes
  • xt (eXact Topic): URN containing file hash
  • as (Acceptable Source): Web link to the file online
  • xs (eXact Source): P2P link identified by a content-hash
  • kt (Keyword Topic): key words for search
  • mt (Manifest Topic): link to the metafile that contains a list of magneto (MAGMA{{spaced ndash}}MAGnet MAnifest)
  • tr (address TRacker): tracker URL for BitTorrent downloads

URN, containing hash (xt)

"xt" ("exact topic"): the most important part of a Magnet link and is used to find and verify the specified files.

//Merkle tree#Tiger tree hash">Tiger Tree Hash (TTH): These hashes are used on Direct Connect and G2 (Gnutella2), among others.

xt=urn:tree:tiger:[ TTH Hash (Base32) ]

//SHA-1">Secure Hash Algorithm 1 (SHA-1): These hash sums are used on gnutella and G2 (Gnutella2).

xt=urn:sha1:[ SHA-1 Hash (Base32) ]

//BitPrint">BitPrint: Such hash sums consist of an SHA-1 Hash, followed by a TTH Hash, delimited by a point; they are used on gnutella and G2 (Gnutella2).

xt=urn:bitprint:[ SHA-1 Hash (Base32) ].[ TTH Hash (Base32) ]

//EDonkey network#Hash identification">ED2K (eDonkey2000) hash: These hash sums are used on eDonkey2000.

xt=urn:ed2k:[ ED2K Hash (Hex) ]

//AICH">Advanced Intelligent Corruption Handler (AICH): Not formal URNs for Magnet links, such hash sums are used by eDonkey2000 to restore and control the integrity of downloading and already downloaded files.

xt=urn:aich:[ aich Hash (Base32) ]

//Kazaa">Kazaa hash: Used on FastTrack, these hash sums are vulnerable to hash collision attacks.

xt=urn:kzhash:[ Kazaa Hash (Hex) ]

BitTorrent info hash (BTIH)
These are hex-encoded SHA-1 hash sums of the "info" sections of BitTorrent metafiles as used by BitTorrent to identify downloadable files or sets of files. For backwards compatibility with existing links, clients should also support the Base32 encoded version of the hash.[1]

xt=urn:btih:[ BitTorrent Info Hash (Hex) ]

Some clients require Base32 of info_hash (e.g., Vuze).

//MD5">Message Digest 5 (MD5): Supported by G2 (Gnutella2), such hashes are vulnerable to hash collision attacks.

xt=urn:md5:[ MD5 Hash (Hex) ]

Web links to the file

There are two types of download links that a Magnet link can include as a direct or backup source.

"as" ("acceptable source")
refers to a direct download from a web server. Regarded as only a fall-back source in case a client is unable to locate and/or download the linked-to file in its supported P2P network(s), most clients treat it equal to the "xs" token when it comes to priority, and ignore the timeout before contacting "as" sources denoted by the specs.

as=[ a web link to the file(URL encoded) ]

"xs" ("exact source")
either an HTTP (or HTTPS, FTP, FTPS, etc.) download source for the file pointed to by the Magnet link, the address of a P2P source for the file or the address of a hub (in the case of DC++), by which a client tries to connect directly, asking for the file and/or its sources. This field is commonly used by P2P clients to store the source, and may include the file hash.
Content-Addressable Web URL
This type of {{IETF RFC|2168}}-based link is used by gnutella as well as G2 applications.[2]

xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF

Link to a
//DirectConnect">DirectConnect hub to find sources for a file: This type of link connects a DirectConnect client immediately to the hub in question.

xs=dchub://[hub address]:[hub port]

Reference to a web-based source cache for a file on
//Gnutella2">Gnutella2: In this case, the included link points, not to a client IP or direct source, but to a source cache which stores the IPs of other clients contacting it to download the same file. Once a client connects to the cache, it is served IPs for alternate sources, while its own IP is stored within the cache and forwarded to the next one connecting to the cache. This system operates similar to a BitTorrent tracker.

xs=http://cache.freebase.be/[ SHA-1 hash ]

Reference to an eD2k source

xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/

Manifest (mt)

This is a link to a list of links (see list). Perhaps as a web link...

mt=http://weblog.foo/all-my-favorites.rss

...or a URN

mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ

Keywords (kt)

This field specifies a string of search keywords to search for in P2P networks.

kt=kilroy+was+here+mp3

Address tracker (tr)

Tracker URL; used to obtain resources for BitTorrent downloads without a need for DHT support.[1]

tr=http://example.com/announce

Supplement format (x.)

For experimental and self-complementing informal options, the prefix x followed by a chosen second letter can be used.

x.[name of the new parameter]=[data of the new parameter (URL encoded)]

Group settings

Multiple files and their URNs, names and hashes in the Magnet link can be included by adding a count number preceded by a dot (".") to each link parameter.

magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]

Clients

Client dn xl xt tr xs as kt mt
AMule {{yes}} {{yes}} urn:ed2k: {{no}} {{unk}} {{unk}} {{unk}} {{unk}}
ApexDC++ {{yes}} {{yes}} urn:bitprint:
urn:tree:tiger:
{{no}}Dchub:[3]}}Dchub:[3]}} {{no}} {{unk}}
BitComet {{yes}} {{yes}} urn:btih: {{yes}} {{no}} {{no}} {{no}} {{no}}
Bitflu {{yes}} {{no}} urn:btih: {{yes}} {{no}} {{no}} {{no}} {{no}}
Deluge {{yes}} {{no}} urn:btih: {{yes}} {{no}} {{no}} {{no}} {{no}}
FlylinkDC++ {{yes}} {{yes}} urn:bitprint:
urn:tree:tiger:
{{no}}Dchub:}}Dchub:[3]}} {{yes}} {{unk}}
gtk-gnutella {{yes}} {{yes}} urn:sha1: {{no}}http:}}
push:
{{yes}} {{yes}} {{no}}
KTorrent {{yes}} {{no}} urn:btih: {{yes}} {{no}} {{no}} {{no}} {{no}}
LimeWire {{yes}} {{yes}} urn:sha1: {{no}}http:}}
urn:guid:
{{unk}} {{no}} {{no}}
µTorrent {{yes}} {{no}} urn:btih: {{yes}} {{no}} {{no}} {{no}} {{no}}
qBittorrent {{yes}} {{no}} urn:btih: {{yes}} {{unk}} {{unk}} {{no}} {{no}}
Shareaza {{yes}} {{yes}} urn:bitprint:
urn:btih:
urn:ed2k:
urn:md5:
urn:sha1:
urn:tree:tiger:
{{yes}}[4]http:}}
ftp:
http:}}
ftp:
(Same priority as xs)
{{yes}} {{no}}
Tixati {{yes}} {{yes}} urn:btih: {{yes}} {{unk}} {{unk}} {{unk}} {{unk}}
Transmission[5][6] {{yes}} {{no}} urn:btih: {{yes}} {{no}} {{no}} {{no}} {{no}}
Vuze {{yes}} {{yes}} urn:btih:
urn:sha1:
{{yes}} {{yes}} {{no}} {{no}} {{no}}

See also

  • BitTorrent
  • Peer-to-peer
  • Burnbit
  • ed2k URI scheme
  • Metalink
  • Named data networking
  • InterPlanetary File System

Notes

1. ^BEP-9: Extension for Peers to Send Metadata Files
2. ^{{cite web |url=http://lists.w3.org/Archives/Public/www-talk/2001NovDec/0090.html |title=HTTP Extensions for a Content-Addressable Web |work=www-talk |publisher=W3C |first=Justin |last=Chapweske |date=November 29, 2001}}
3. ^Dchub://[hubaddress]:[hubport]
4. ^Since v2.5.1.0
5. ^{{cite web |url=https://trac.transmissionbt.com/browser/trunk/libtransmission/magnet-test.c?rev=9531 |title=magnet-test.c in trunk/libtransmission; Revision 9531 |publisher=Transmission}}
6. ^{{cite web |url=https://trac.transmissionbt.com/browser/trunk/libtransmission/magnet.c?rev=9979 |title=magnet.c in trunk/libtransmission; Revision 9979 |publisher=Transmission}}

References

{{Reflist|30em}}

External links

  • {{sourceforge|magnet-uri|Magnet-URI Project}}
  • CHK Freeware Checksum Utility with SHA1-Base32 and ED2K support
  • {{sourceforge|rhash|RHash}}, an open source command-line tool, which can calculate Magnet links
{{URI scheme}}{{File sharing protocols}}{{DEFAULTSORT:Magnet Uri Scheme}}

2 : File sharing|URI schemes

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/20 20:47:45