Magnet - это схема URI, которая определяет формат магнитных ссылок, де-факто стандарт для идентификации файлов ( URN ) по их содержимому, с помощью криптографического значения хеш-функции, а не по их местоположению.
Хотя магнитные ссылки могут использоваться в различных контекстах, они особенно полезны в одноранговых сетях обмена файлами, поскольку они позволяют ссылаться на ресурсы без необходимости в постоянно доступном хосте и могут быть сгенерированы любым, кто уже имеет файл, и центральный орган не должен их выпускать. Это делает их популярными для использования в качестве «гарантированных» условий поиска в сообществе обмена файлами, где любой может распространять магнитную ссылку, чтобы гарантировать, что ресурс, полученный по этой ссылке, является тем, который был предназначен, независимо от того, как он был получен.
Стандарт для Magnet URI был разработан Bitzi в 2002 году, отчасти как «обобщение, не зависящее от поставщика и проекта» схем URI ed2k:
и freenet:
URI, используемых eDonkey2000 и Freenet, соответственно, и пытается как можно точнее следовать официальным стандартам IETF URI. BitTorrent представил btmh:
протокол в 2020 году в рамках изменений BitTorrent v2.
Магнитные URI состоят из серии из одного или нескольких параметров, порядок которых не имеет значения, отформатированных так же, как строки запроса, которые обычно завершают URL-адреса HTTP. Наиболее распространенным параметром является «xt» («точная тема»), который обычно представляет собой URN, сформированный из хэша содержимого определенного файла, например:
magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
Это относится к шестнадцатеричной закодирована SHA-1 хэш (btih, «BitTorrent инфо-хэш») из информационного раздела торрент файла в вопрос. Обратите внимание, что, хотя указывается конкретный файл, поиск его доступности все равно должен выполняться клиентским приложением.
Поддерживаются следующие параметры:
Параметр | Имя | Описание |
---|---|---|
дн | Отображаемое имя | Имя файла, отображаемое пользователю для удобства. |
xl | eXact Длина | Размер (в байтах) |
xt | eXact Topic | URN, содержащий хеш файла. Это самая важная часть магнитной ссылки, которая используется для поиска и проверки указанного файла. URN специфичен для протокола, поэтому хеш-URN файла в btih (BitTorrent) будет полностью отличаться от хеш-URN файла для ed2k.
|
WS | Web Seed | Данные полезной нагрузки обслуживаются через HTTP (S) |
в качестве | Приемлемый источник | Относится к прямой загрузке с веб-сервера. Считается только резервным источником в случае, если клиент не может найти и / или загрузить связанный файл в своей поддерживаемой P2P сети (ах).
|
хз | eXact Source | Либо источник загрузки HTTP (или HTTPS, FTP, FTPS и т. Д.) Для файла, на который указывает ссылка Magnet, адрес источника P2P для файла или адрес концентратора (в случае DC ++ ), к которому клиент пытается подключиться напрямую, запрашивая файл и / или его источники. Это поле обычно используется клиентами P2P для хранения источника и может включать хэш файла. |
kt | Тема ключевого слова | Определяет строку поисковых ключевых слов для поиска в P2P-сетях, а не конкретный файл.
|
мт | Тема манифеста | Ссылка на метафайл, содержащий список магнето (MAGMA - MAGnet MAnifest ); т.е. ссылка на список ссылок
|
tr | адрес TRacker | URL трекера ; используется для получения ресурсов для загрузок BitTorrent без необходимости поддержки DHT. Значение должно быть закодировано в URL.
|
Стандарт также допускает экспериментальные параметры для конкретных приложений, которые должны начинаться с «x».
Параметр xt указывает URN для данного протокола p2p. Его цель - предоставить параметр поиска для поиска метаданных торрента. Это эффективно действует как замена.torrent-файлу, который сам содержит метаданные торрента, путем поиска этих метаданных в сети p2p (с использованием URN). Каждый протокол уникально обрабатывает URN; например, xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8
использует btih (протокол BitTorrent v1), поэтому клиент BitTorrent может использовать хэш и искать метаданные торрента в BitTorrent DHT. В случае DHT клиент просматривает набор заранее известных узлов и запрашивает метаданные для информационного хэша; эти узлы будут делать тот же запрос другим известным узлам, пока в конечном итоге не будет найден и возвращен рой.
xt также допускает групповую настройку. Можно включить несколько файлов, добавив число счетчика, которому предшествует точка ("."), К каждому параметру ссылки.
magnet:?xt.1=[ URN of the first file]amp;xt.2=[ URN of the second file]
xt=urn:tree:tiger:[ TTH Hash ( Base32 ) ]
xt=urn:sha1:[ SHA-1 Hash ( Base32 ) ]
xt=urn:bitprint:[ SHA-1 Hash ( Base32 ) ].[ TTH Hash ( Base32 ) ]
xt=urn:ed2k:[ ED2K Hash ( Hex ) ]
xt=urn:aich:[ aich Hash ( Base32 ) ]
xt=urn:kzhash:[ Kazaa Hash ( Hex ) ]
xt=urn:btih:[ BitTorrent Info Hash ( Hex ) ]
Некоторым клиентам требуется Base32 of info_hash (например, Vuze ).
xt=urn:md5:[ MD5 Hash ( Hex ) ]
Есть два типа ссылок для скачивания, которые магнитная ссылка может включать в себя как прямой или резервный источник.
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
xs=dchub://[hub address]:[hub port]
xs= http://cache.freebase.be/ [ SHA-1 hash ]
xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/
Для экспериментальных и самодополняющихся неформальных вариантов можно использовать префикс, x.
за которым следует выбранная буква суффикса. Гарантируется, что эти имена никогда не будут стандартизированы.
x.[name of the new parameter]=[data of the new parameter ( URL encoded)]
Клиент | дн | xl | xt | tr | хз | в качестве | kt | мт | WS |
---|---|---|---|---|---|---|---|---|---|
AMule | да | да | urn:ed2k: | Нет | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный |
ApexDC ++ | да | да | urn:bitprint: urn:tree:tiger: | Нет | дчуб: | дчуб: | Нет | Нет | Неизвестный |
BitComet | да | да | urn:btih: | да | да1.76 | Нет | Нет | Нет | да1.74 |
Bitflu | да | Нет | urn:btih: | да | Нет | Нет | Нет | Нет | Неизвестный |
Потоп | да | Нет | urn:btih: | да | Нет | Нет | Нет | Нет | Неизвестный |
EiskaltDC ++ | да | да | urn:tree:tiger: urn:bitprint: urn:btih: urn:btmh: | Нет | dchub : adc: adcs: | дчуб: | да | Нет | Неизвестный |
FlylinkDC ++ | да | да | urn:tree:tiger: urn:bitprint: urn:btih: | Нет | dchub : adc: adcs: | дчуб: | да | Нет | Неизвестный |
gtk-gnutella | да | да | urn:sha1: | Нет | http: push: | да | да | Нет | Неизвестный |
KTorrent | да | Нет | urn:btih: | да | Нет | Нет | Нет | Нет | Неизвестный |
LimeWire | да | да | urn:sha1: | Нет | http: urn: guid : | Неизвестный | Нет | Нет | Неизвестный |
МоноТоррент | да | да | urn:btih: | да | Нет | да | Нет | Нет | Неизвестный |
μTorrent | да | Нет | urn:btih: | да | Нет | Нет | Нет | Нет | Неизвестный |
qBittorrent | да | Нет | urn:btih: | да | Неизвестный | Неизвестный | Нет | Нет | Неизвестный |
Shareaza | да | да | urn:bitprint: urn:btih: urn:ed2k: urn:md5: urn:sha1: urn:tree:tiger: | да | http: ftp: | http: ftp: (тот же приоритет, что и xs) | да | Нет | Неизвестный |
Тиксати | да | да | urn:btih: | да | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный |
Передача инфекции | да | Нет | urn:btih: | да | Нет | Нет | Нет | Нет | да |
Вузе | да | да | urn:btih: urn:sha1: | да | да5.7.5.0 | да5.7.5.0 | Нет | Нет | да |