Magnet länk

Magnet URI-schema:  är ett öppet, fungerande utkast till standard som definierar det så kallade URI-schemat . magnetlänkar, designade främst för att peka på resurser som är tillgängliga för nedladdning via peer-to- peer-nätverk . Sådana länkar identifierar i princip filer inte genom deras plats eller namn, utan genom deras innehåll  - eller snarare, genom dess hash-kod .

Eftersom sådana länkar gör det möjligt att hitta en fil baserat på dess innehåll och metainformation snarare än dess faktiska plats, kan de betraktas som ett slags URN snarare än den mer allmänna URI :n . Även om magnetlänkar kan användas i andra områden är de mest efterfrågade i peer-to-peer-nätverk, eftersom länkning till en resurs i sådana nätverk inte betyder att den måste vara ständigt tillgänglig.

Standarden skapades 2002, delvis som ett leverantörs- och projektoberoende generiskt URI-schema ed2k:och används av eDonkey2000- respektive Freenetfreenet: -nätverken . Skapandet av standarden åtföljdes av ett försök att följa IETFs URI- standarder så mycket som möjligt.

Applikation

  1. Används i DC++-kataloger , där de publiceras tillsammans med en detaljerad beskrivning av filen.
  2. I BitTorrent-kataloger där de publiceras som en alternativ nedladdningsmetod tillsammans med en detaljerad beskrivning av distributionen.
  3. För att ladda ner en fil och spara den under ett annat namn än det som anges i url [1] .

Eftersom inte alla parsers behandlar en magnetlänk på samma sätt som vilken annan URL-länk som helst, kan sådana länkar förekomma i textform (delade över flera rader) - i det här fallet måste de förmonteras genom att rader tas bort. Det finns speciella plugins för webbläsare som låter dig behandla en magnetlänk på samma sätt som alla andra.

Magnetlänkar kan också distribueras som *.magnet-filer .

Användning av hashkoder

Den vanligaste användningen av magnetlänkar är att peka på en specifik fil med dess unika identifierare, liknande ett ISBN men baserat på hashkoden för filens innehåll. Till skillnad från andra typer av identifierare kan alla ägare av en fil generera en magnetlänk med hjälp av en standardalgoritm, så det finns inget behov av en centraliserad organisation som ansvarar för att tilldela dem.

Eftersom all hashning är en avsmalnande transformation, är situationer där två olika filer kommer att ha samma hashkoder teoretiskt möjliga , men i praktiken förekommer de extremt sällan.

En av fördelarna med magnetlänkar är deras öppenhet och plattformsoberoende: de kan användas för att ladda ner en fil med en mängd olika applikationer på nästan alla operativsystem. På grund av att en magnetlänk är en kort textsträng kan den enkelt kopieras via urklipp , skickas via e- post , snabbmeddelandeprogram , SMS eller mikrobloggtjänst . Det finns också onlinetjänster för att generera korta länkar från magnetlänkar av valfri längd.

Teknisk beskrivning

En magnetlänk kan innehålla en eller flera parametrar separerade med '&'. Parametrarnas ordning är inte dokumenterad. För vissa värden är positionen för parametern viktig för korrekt analys av klienten av magnetlänken.

Exempel magnet:?xl=Размер_в_байтах&dn=Имя_файла&xt=urn:tree:tiger:TTH-хеш_файла alternativ dn (Visningsnamn) — filnamn. xl (exakt längd) — filstorlek i byte. dl (Display Length)  — visad storlek i byte. xt (exakt ämne)  - URN som innehåller filens hash . as (Acceptable Source)  - En webblänk till en fil på Internet. xs (exakt källa)  - P2P- länk. kt (Sökordsämne)  — sökord. mt (Manifest Topic)  - länk till en metafil som innehåller en lista med magneter ( MAGMA ). tr (TRacker)  — spårningsadress för BitTorrent- klienter.

URN som innehåller hash (xt)

Denna del av magnetlänken är den viktigaste. Det är hashen som anges i den som söker efter källor och kontrollerar filen.

TTH (Tiger Tree Hash)

Hash används i Direct Connect- och Gnutella-nätverk

xt= urn:tree:tiger :[ TTH fil hash ( Base32 ) ] SHA-1 (Secure Hash Algorithm 1)

Hashen används i Gnutella , Gnutella2-nätverken och även för att skapa en mikrotorrent från en magnetlänk.

xt= urn:sha1 :[ sha1 fil hash ( Base32 ) ] BitPrint [2]

Detta är en sekventiell notation av SHA-1- hash och TTH , åtskilda av en punkt. Hashen används i Gnutella2 . Direct Connect använder endast TTH- delen av BitPrint

xt= urn:bitprint :[ sha1 fil hash ( Base32 ) ].[ TTH fil hash ( Base32 ) ] ED2K (EDonkey2000) Hash

ED2K- hash (för filer upp till 9 728 000 byte motsvarar MD4 ) som används i EDonkey2000

xt= urn:ed2k :[ ed2k fil hash ( Hex ) ] AICH [3] (Advanced Intelligent Corruption Handler)

Inofficiell URN för magnet. eDonkey2000 läses inte av kunder ännu. Hashen används av eDonkey2000 för att återställa filens integritet.

xt= urn:aich :[ aich fil hash ( Base32 ) ]

Magnetlänkar med AICH skapas till exempel av Rhash (rhash—aich—magnet filnamn ).

Kazaa Hash

Hash används i FastTrack

xt= urn:kzhash :[ Kazaa hash ( Hex ) ] BTIH (BitTorrent Info Hash)

Hash används i BitTorrent -nätverk ( Azureus , µTorrent )

xt= urn:btih :[ BTIH ( Hex ) ] MD5 (Message Digest 5)

Hash används i Gnutella2

xt= urn:md5 :[ MD5 hash ( Hex ) ] CRC-32 (cyklisk redundanskontroll)

Inofficiell URN för magnet. Används inte i P2P- nätverk.

xt= urn:crc32 :[ CRC-32 ( Base10 ) ]

Webblänkar till filen

Det finns 3 typer av länkar som kan infogas i en magnetlänk.

Vanlig (som)

Denna länk pekar på adressen till filen på en vanlig webbserver. Kunden ansöker inte om det omedelbart, utan först efter det att en tid har gått; alltså, denna länk används endast om filen inte kunde hittas i P2P-nätverk, vilket undviker onödig belastning på servern.

as=[webblänk till fil ( URL -kodad)] BitTorrent Web Seed (ws)

Detta är en direktlänk till en fil eller katalog att ladda ner. GetRight stöder HTTP, HTTPS, FTP och FTPS-nedladdningar. Det är möjligt att använda andra protokoll, till exempel RTSP eller MMS , om deras stöd är implementerat i klienten.

ws=[webblänk till fil/katalog ( URL -kodad)] P2P (xs)

Denna länk är vanligtvis filadressen inte på servern, utan på P2P-klienten eller hubbadressen (i fallet DC++). Genom att använda den här länken försöker klienten att omedelbart ansluta och begära filen eller dess källor. Detta fält används vanligtvis av P2P-klienter för att lagra källan. Länken kan innehålla filens hash.

Innehållsadresserande webblänk

Denna typ av länk används i första hand endast av Shareaza- klienten .

xs=http://[Klientadress]:[Klientport]/uri-res/N2R?[ URN som innehåller filhash ] Länk till DirectConnect- hubben med filkällor

Denna länk ansluter DirectConnect-klienten omedelbart till den angivna hubben. Fungerar endast korrekt i icke -URI-kodad form i slutet av en magnetlänk. Låter dig samlas och ladda ner samma fil med hjälp av denna magnetlänk på ett nav.

xs=dchub://[Navadress]:[Navport]

För att infoga i en magnetlänk är det tillrådligt att använda adressen till en stor allmänt tillgänglig Direct Connect-hubb där det inte finns några begränsningar för storleken på andelar (filer tillgängliga för nedladdning från klienten).

Länk till filkällans cache för Gnutella2

I det här fallet pekar länken inte till klienten, utan till källcachen. Cachen har ingen fil, men den registrerar och ger ut adresserna till de som har en port öppen för distribution och de kontaktade denna adress. Således kan de som ansökt om denna fil på denna adress redan ha fått filen och kan nu överföra den till nästa begärande. Detta system fungerar på liknande sätt som en BitTorrent-spårare .

xs= http://cache.freebase.be/ Arkiverad 3 oktober 2009 på Wayback Machine [ sha1 file hash ] Länk till ED2K-källa xs=ed2kftp://[Klientadress]:[Client Port]/[ed2k hash]/[filstorlek]/

Visningsstorlek (dl)

Magnetlänkar länkar endast till en fil. Vissa DC++-klienter har en fungerande implementering av kataloglänkar. Sådana referenser är oföränderliga när det gäller att byta namn på filer i katalogen, men inte oföränderliga när det gäller att ta bort, ändra eller lägga till filer som Thumbs.db , program.ini och liknande, så ett mer tillförlitligt sätt att referera till en katalog är att skapa en metafil . En metafil är en fil som kan skickas i en applikation eller lagras på en webbplats, men den kan också refereras till med en magnetlänk, till exempel i en chatt. Men xl-parametern för en sådan länk kännetecknar storleken på metafilen, men inte storleken på katalogen, vilket är obekvämt. Parametern dl kännetecknar exakt storleken på katalogen som beskrivs av metafilen. Programvara som känner igen och återger magnetlänkar på ett läsbart sätt bör föredra dl-alternativet när storleken visas. dl är inte en teknisk parameter som påverkar nedladdningar eller sökningar, så den här parametern är tillämplig i andra användningsfall , såsom magnetlänkar till BitTorrent -distributioner med flera delar .

Manifest (mt)

Detta är en länk till en lista med länkar (arkivblad). Kan vara som en webblänk,

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

och URN

mt= urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ

Tillsammans med andra kan den användas för att få ytterligare information om en fil.

Exempel:

magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz &xt= urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY &mt= urn:btih:QHQXPYWMACKDWKVIVQOURXRR

Denna magnet innehåller data från en fil, och mt-delen innehåller en BTIH .torrent-fil som innehåller ytterligare information om filen.

Nyckelord (kt)

Det här fältet anger söksträngen i P2P-nätverk.

kt=martin+luther+king+mp3

Spårningsadress (tr)

Tracker URL . Används för att hämta BitTorrent- källor utan att använda DHT -nätverket . Låter dig klara dig utan en torrentfil (den laddas ner från de mottagna källorna) [4] .

tr=http://example.com/announce

Bithastighet (br)

Nedladdningshastigheten ( bithastighet ) med vilken delar av en fil kan begäras sekventiellt. Laddas sekventiellt sker endast i en del av filen från början till uppspelningspunkten [5] . Om peeren inte har delar tillgängliga för sekventiell nedladdning begärs en slumpmässig från en annan del av filen [6] .

br=192000

Beräkning:

br=[filstorlek i byte]*8 / [längd på ljud eller video i sekunder]

Algoritm för användning i p2p-klient:

1 Om (filnedladdningshastigheten är lägre än den angivna bithastigheten) sedan laddas filen slumpmässigt; 2 Annars Om (nedladdningshastigheten för den kontinuerliga sektionen från början av filen är mindre än eller lika med bithastigheten) sedan laddas filen sekventiellt; Annat filen laddas slumpmässigt;

Formatkomplement (x.)

För självkompletterande av formatet med inofficiella parametrar tillhandahålls prefixet 'x.' för dem.

x.[nytt parameternamn]=[ny parameterdata ( URL -kodad)]

Parametergrupper

Suffixet '.' läggs till parameternamnen för en grupp. (prick) och gruppindex.

magnet:?xt.1= [ URN för första filen ]&xt.2=[ URN för andra filen ]

Notera

Vissa program som skapar en magnetlänk kodar inte specialtecken och nationella tecken i URI- representationen (%20), och därför kan dessa länkar på en webbsida orsaka fel. Detta är särskilt viktigt när länken som sätts in i magnetlänken innehåller "&"-tecken; de ska ersättas med "%26".

URI -kodning

Infogade referenser i angivna fält (as, xs, tr) måste URI-kodas i förväg [7] .

Tracker URL

http://tracker.example.org/announce.php ? _ _ _ _ Storbritannien = 1111111111 &

i en magnetlänk ska se ut så här

magnet:?tr= http %3A%2F%2F tracker.example.org %2F announce.php %3F uk %3D 1111111111 %26

URL-kodning

" # [8] % & [8] ' * , [8] : [8] ; [åtta] < > ? [åtta] [ ^ ` { | } <mellanslag>
%22 %23 %25 %26 %27 %2a %2c %3a %3b %3c %3e %3f %5b %5e %60 %7b %7c %7d %20 [9]
Inbäddning i HTML

Innan du infogar i HTML -koden i länken måste du ersätta alla tecken "&" med "&".

original magnet

magnet:?dn=file.ext & tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26

när den klistras in i HTML ska koden se ut så här

<a href=" magnet:?dn=file.ext & tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26 ">file.ext</a>

Detta kan göras med programmet Notepad++ v5.4.5+, med menyalternativet TextFX -> TextFX Convert -> Encode HTML (&<>")

Radbrytning

Om du behöver dela upp länken i rader [10] , är det bättre att lägga övergången till en ny rad före "&"-tecknet (ampersand). I det här fallet, när du möter den i början av raden, kan du lätt förstå att detta är en fortsättning på magnetlänken.

magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz & xt= urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY & xt= urn:btih:QHQXPYWMACKRDVIVOURQ7 Publikation

Vissa forum gör en speciell BBCode [magnet]-tagg, men om den inte finns kan du prova att använda [url]-taggen.

Att infoga en magnet i en [url] -tagg kan göra forumparsern oanvändbar. För att komma runt denna begränsning kan du använda webbplatsen [11] , som låter dig skapa en url av en magnetlänk genom att lägga till dess adress i början.

Exempel:

https://ivan386.github.io/#magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY Arkiverad 15 januari 201 på Wayback Machine

Genom att klicka på en sådan länk kommer användaren att föras till en sida som omdirigerar honom till den ursprungliga magnetlänken. Själva magnetlänken skickas inte i en GET-förfrågan till servern, vilket gör den osynlig för leverantören och servern. Men i sociala nätverk, vid publicering, kan en sådan länk skäras av på grund av symbolerna "#" och ":" till symbolen "?". I det här fallet, genom att ta bort dem, kan du kringgå denna begränsning, men samtidigt kommer dessa magnetlänkar redan att överföras i en GET-förfrågan till servern.

Exempel:

https://ivan386.github.io/magnet?xl=10826029&dn=mediawiki-1.15.1.tar.gz&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY

Ett exempel på en "universell" magnetlänk

Magnetlänk till filen mediawiki-1.15.1.tar.gz (länken är uppdelad i rader för läsbarhet):

magnet:?xt=urn:ed2k:354B15E68FB8F36D7CD88FF94116CDC1 &xl=10826029 &dn=mediawiki-1.15.1.tar.gz &xt= urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY &xt= urn:sha1:XRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5 &xt= urn:aich:7ZDRR3ZQW4JMHUQZUMJGQN2VNGLV3CVN &xt= urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q &tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26 &tr=wss%3A%2F%2Ftracker.webtorrent.io &as=http%3A%2F%2Fdownload.wikimedia.org%2Fmediawiki%2F1.15%2Fmediawiki-1.15.1.tar.gz &ws=http%3A%2F%2Fdownload.wikimedia.org%2Fmediawiki%2F1.15%2Fmediawiki-1.15.1.tar.gz &xs=http%3A%2F%2Fcache.example.org%2FXRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5 &xs=dchub://example.org Arkiverad 28 december 2021 på Wayback Machine [12]

Denna länk kan kodas som en QR-kod .

Den här länken kan också förkortas med hjälp av vissa URL-förkortningstjänster som stöder ett URI-schema , magnet:till exempel TinyURL eller mgnet.me (schema (protokoll) http:utelämnat):

tinyurl.com/lr85y2g

Detta kan vara användbart i ett antal fall, till exempel när du lägger upp en magnetlänk på Twitter som är begränsad till 140 tecken, eller när du kodar en magnetlänk som en QR-kod för att minska storleken på den senare.

Denna länk innehåller nödvändig information för att kunna ladda ner den i fem P2P- nätverk: eDonkey2000 , Direct Connect , BitTorrent , Gnutella , Gnutella2 . Detta gör att klientprogram som stöder flera P2P-nätverk kan ladda ner och dela filer över nätverk.

De flesta klientprogram kan inte korrekt bearbeta (tolka) en universell länk och/eller stöder inte vissa protokoll och kan inte ignorera parametrar som inte stöds, eller är känsliga för det ömsesidiga arrangemanget av parametrar i magnetlänkar. I sådana fall måste länken förberedas i förväg: ordna parametrarna i länken i önskad ordning och/eller ta bort parametrar som inte stöds.

Den implementerar också ett system som liknar en torrent tracker för Gnutella2 och Direct Connect -nätverk :

  • En klient i Gnutella2-nätverket [13] kan hämta filens källor från källcache-länken "http://cache.example.org/FXRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5" [14] ;
  • Nätverksklienten Direct Connect kan ansluta till navet "dchub://example.org" , där den snabbt kan hitta filens källor. Men den här funktionen välkomnas inte av användare och administratörer av nav, för när du klickar på länken ansluter klienten automatiskt till hubben utan att fråga användaren.

Klientsupportfunktioner

Universell
Klient dn xl xt som xs ws kt mt tr Uppsnappande Föra in
shareaza Ja Ja urna: sha1: urna
: träd: tiger:
urn: bitavtryck: urna:
ed2k: urna
: md5:
urn: btih:
http:
ftp:
http:
ftp:
? Ja Inte Ja Ja Ja
mldonkey ? ? ? ? ? ? ? ? ? ? ?
Direktkoppling
ApexDC++ 1.0.1 Ja Ja urna: träd: tiger:
urna: bitavtryck:
dchub://[hubaddress]: [hubport] dchub://[hubaddress]: [hubport] ? Inte ? Inte Ja Inte
FlylinkDC++ r500 release Ja Ja urna: träd: tiger:
urna: bitavtryck:
urna: btih:
dchub://[hubaddress]: [hubport] adc
://[hubaddress]: [hubport]
adcs://[hubaddress]: [hubport]
dchub://[hubaddress]: [hubport] adc
://[hubaddress]: [hubport]
adcs://[hubaddress]: [hubport]
? Ja Inte Inte Ja Ja
EiskaltDC++ 2.2.6 Ja Ja urna: träd: tiger:
urna: bitavtryck:
endast torrentklient: urn
: btih:
urn: btmh:
dchub://[hubaddress]: [hubport] adc
://[hubaddress]: [hubport]
adcs://[hubaddress]: [hubport]
dchub://[hubaddress]: [hubport] adc
://[hubaddress]: [hubport]
adcs://[hubaddress]: [hubport]
? Ja Inte Inte Ja Ja
Grå länk 0,39 Ja Ja urna: träd: tiger:
urna: bitavtryck:
? ? ? ? ? Inte Ja Ja
bittorrent
Vuze (gammalt namn: Azureus ) 3.0 ? ? urna:btih: ? ? ? ? ? ? ? ?
LeechCraft 0.5 Ja Ja urna:btih: ? ? ? Ja ? Ja Ja Ja
µTorrent 3.4 Ja Ja urna:btih: ? ? http:
https:
? ? http:
udp:
Ja Ja
BitComet Ja Ja urna:btih: Inte Inte ? Inte Inte Ja Ja Ja
Överföring (från v2.84) [15] [16] Ja Inte urna:btih: Inte Inte Ja Inte Inte Ja Ja Ja
Gnutella
LimeWire Ja Ja urna:sha1: http:
urn:guide:
? ? Inte Inte Inte Ja Ja
EDonkey2000
aMule 2.2.1 Ja Ja urna: ed2k: ? ? ? ? ? ? Möjligt med MLDonkey Protocol Handler för FireFox Ja
WebTorrent ( BitTorrent över WebRTC )
instant.io Ja ? urna:btih: http:
https:
? http:
https:
? ? wss:wss
:
Ja Ja
βTorrent (btorrent.xyz) Ja ? urna:btih: http:
https:
? http:
https:
? ? wss:wss
:
Inte Ja
Klient dn xl xt som xs ws kt mt tr Uppsnappande Föra in

"Ja" - stöds; "Nej" - stöds inte; "?" - Support är okänt.

DC-klienter

De flesta klienter "fångar upp" magnetlänken endast från webbläsaren. Därför måste magnetlänken infogas i webbläsarens adressfält och följas av den. För en annan typ klickar du bara på länken med musen. GreyLink och FlylinkDC++ låter dig ange magnetlänkar i klienten ("Arkiv → Ange magnetlänk...", eller "Ctrl+M"). EiskaltDC++ låter dig kopiera en magnetlänk till snabbsökningsfältet och trycka på Enter, öppna länken från klippbordet ("Arkiv → Öppna magnetlänk", eller "Ctrl + I") eller skicka länken som ett argument när du startar programmet .

aMule 2.2

"Accepterar" en magnetlänk endast om den sätts in i eD2k Link-linjen längst ner på klienten. Därför måste länken först "samlas", kopieras, klistras in i detta fält och klicka på lägg till-knappen.

ED2K Hash , storlek och filnamn måste komma först och i den ordningen. Klienten delar länken. Filstorleksdata och dess hash kan vara i olika delar. På grund av detta kan länken bli oanvändbar för nedladdning.

Se även

Anteckningar

  1. VKontakte Audio Download, Playlist, Artist -Titelfilter för Greasemonkey
  2. Vad är ett Bitzi Bitprint? Arkiverad 13 september 2009 på Wayback Machine 
  3. AICH Arkiverad 6 november 2009.  (Engelsk)
  4. magnet URI-format Arkiverad 22 oktober 2008 på Wayback Machine 
  5. Bitrate * (Tid som har gått från nedladdningsstart)
  6. För närvarande känns den här parametern endast igen av modifieringen av Shareaza P2P- klienten av ivan386 .
  7. , d.v.s. vissa tecken bör ersättas med %XX (%XX%XX), där XX är teckenkoden i UTF-8- kodning
  8. 1 2 3 4 5 6 Symbolen är tillåten, men när den anges i klartext har den en speciell syntaktisk betydelse
  9. MediaWiki undviker att koda blanksteg som %20, istället ersätter den med understrecket "_" överallt. Många sökmotorer ersätter utrymmet med en "+"-symbol.
  10. till exempel när länken kommer att visas för användaren i vanlig text
  11. Magnetomvandlare . Tillträdesdatum: 15 januari 2015. Arkiverad från originalet 15 januari 2015.
  12. ↑ Om hubblänken är URI-kodad kommer den inte att kännas igen korrekt av Direct Connect- klienten. Därför sätts den in i sin ursprungliga form och endast i slutet av magnetlänken
  13. Shareaza till exempel
  14. Länken finns i magnetlänkens näst sista xs-fält och är URI-kodad så att den inte ser ut som originalet.
  15. magnet-test.c i trunk/libtransmission - Transmission . Hämtad 16 februari 2010. Arkiverad från originalet 17 juli 2011.
  16. magnet.c i trunk/libtransmission - Transmission . Hämtad 16 februari 2010. Arkiverad från originalet 17 juli 2011.

Länkar