Magnet-ссылкаURI-схема magnet: — открытый, находящийся в стадии рабочего черновика стандарт, определяющий URI-схему т. н. magnet-ссылок, предназначенных преимущественно для указания на ресурсы, доступные к загрузке через пиринговые сети. Такие ссылки в основном идентифицируют файлы не по их расположению или имени, а по содержанию — вернее, по его хеш-коду. Поскольку такие ссылки позволяют найти файл на основе его содержания и метаинформации, а не его фактического расположения, их можно считать разновидностью URN, а не более общего URI. Хотя magnet-ссылки могут использоваться в других сферах, они наиболее востребованы в пиринговых сетях, поскольку в таких сетях ссылка на некий ресурс не означает, что он должен быть постоянно доступен. Стандарт был создан в 2002 году, отчасти как обобщение, независимое от конкретных производителей программного обеспечения и проектов, URI-схем Применение
Поскольку не все парсеры воспринимают magnet-ссылку так же, как и любую другую URL ссылку, такие ссылки могут встречаться в текстовом виде (разбитыми на несколько строк) — в таком случае они должны быть предварительно «собраны» путём удаления переводов строки. Существуют специальные плагины для браузеров, которые позволяют воспринимать magnet-ссылку так же, как и любую другую. Также magnet-ссылки могут распространяться в виде файлов с расширением *.magnet. Использование хеш-кодовНаиболее распространённое использование magnet-ссылок — указание на конкретный файл при помощи его уникального идентификатора, подобного ISBN, но основанного на хеш-коде содержимого файла. В отличие от других видов идентификаторов, magnet-ссылку может сгенерировать любой обладатель файла по стандартному алгоритму, благодаря чему наличие централизованной организации, отвечающей за их присвоение, не требуется. Поскольку любое хеширование является сужающим преобразованием, теоретически возможны ситуации, в которых два разных файла будут обладать одинаковыми хеш-кодами, однако на практике они возникают исключительно редко. Одним из преимуществ magnet-ссылок является их открытость и независимость от платформы: они могут быть использованы для загрузки файла при помощи разнообразных приложений на практически всех операционных системах. Благодаря тому, что magnet-ссылка представляет собой короткую строку текста, она может быть легко скопирована через буфер обмена, отправлена по электронной почте, при помощи программы мгновенного обмена сообщениями, SMS или службы микроблогинга. Также существуют интернет-службы для генерации коротких ссылок из magnet-ссылок любой длины. Техническое описаниеMagnet-ссылка может содержать один или несколько параметров, разделённых между собой знаком '&'. Порядок следования параметров не документирован. Для некоторых значений важно положение параметра для правильного синтаксического анализа клиентом магнет-ссылки.
URN, содержащий хеш (xt)Данная часть магнет-ссылки является самой главной. Именно по указанному в ней хешу производится поиск источников и проверка файла. TTH (Tiger Tree Hash)Хеш используется в сетях Direct Connect и Gnutella xt=urn:tree:tiger:[ TTH хеш файла (Base32) ] SHA-1 (Secure Hash Algorithm 1)Хеш используется в сетях Gnutella, Gnutella2 а также для создания микро-торрента из магнет-ссылки. xt=urn:sha1:[ sha1 хеш файла (Base32) ] BitPrint[2]Это последовательная запись хеша SHA-1 и TTH, разделённых точкой. Хеш используется в Gnutella2. Direct Connect использует только TTH часть BitPrint xt=urn:bitprint:[ sha1 хеш файла (Base32) ].[ TTH хеш файла (Base32) ] ED2K (EDonkey2000) HashХеш ED2K (для файлов с размером не более 9 728 000 байт соответствует MD4) используется в EDonkey2000 xt=urn:ed2k:[ ed2k хеш файла (Hex) ] Неофициальный URN для магнет. eDonkey2000 клиентами пока не читается. Хеш используется в eDonkey2000 для восстановления целостности файла. xt=urn:aich:[ aich хеш файла (Base32) ] Магнет-ссылки с AICH создаёт, к примеру, Rhash (rhash—aich—magnet filename). Kazaa HashХеш используется в FastTrack xt=urn:kzhash:[ Kazaa хеш (Hex) ] Хеш используется в сетях BitTorrent (Azureus, µTorrent) xt=urn:btih:[ BTIH (Hex) ] MD5 (Message Digest 5)Хеш используется в Gnutella2 xt=urn:md5:[ MD5 хеш (Hex) ] CRC-32 (Cyclic Redundancy Check)Неофициальный URN для магнет. В P2P сетях не используется. xt=urn:crc32:[ CRC-32 (Base10) ] Веб-ссылки на файлСуществует 3 вида ссылок, которые можно вставить в magnet-ссылку. Обычная (as)Эта ссылка указывает адрес файла на обычном веб-сервере. Клиент обращается по ней не сразу, а только по прошествии некоторого времени; таким образом, эта ссылка используется только в том случае, если файл не удалось обнаружить в P2P-сетях, что позволяет избежать излишней нагрузки на сервер. as=[веб-ссылка на файл (URL encoded)] BitTorrent Web Seed (ws)Это прямая ссылка на файл или каталог для загрузки. GetRight поддерживает загрузку по протоколам HTTP, HTTPS, FTP и FTPS. Возможно использование и других протоколов, например, RTSP или MMS, если их поддержка реализована в клиенте. ws=[веб-ссылка на файл/каталог (URL encoded)] P2P (xs)Эта ссылка — обычно адрес файла не на сервере, а на P2P-клиенте или адрес хаба (в случае DC++). По этой ссылке клиент пытается сразу соединиться и запросить файл или его источники. Данное поле обычно используется P2P-клиентами для хранения источника. Ссылка может содержать хеш файла. Содержимо-адресующаяся веб ссылкаДанный вид ссылки в основном используется только клиентом Shareaza. xs=http://[Адрес клиента]:[Порт клиента]/uri-res/N2R?[ URN содержащий хеш файла ] Ссылка на DirectConnect хаб с источниками файлаПо этой ссылке клиент DirectConnect сразу же соединяется с указанным хабом. Правильно работает только в не URI кодированном виде в конце магнет-ссылки. Позволяет собраться качающим один и тот же файл по этой магнет-ссылке на одном хабе. xs=dchub://[Адрес хаба]:[Порт хаба] Для вставки в магнет-ссылку желательно использовать адрес крупного публично доступного Direct Connect хаба на котором нет ограничений по размеру шары (доступных для скачивания с клиента файлов). Ссылка на кеш источников файла для Gnutella2В данном случае ссылка указывает не на клиент, а на кеш источников. Кеш не имеет у себя файла, но записывает и выдаёт адреса тех, у кого открыт порт на раздачу и он обратился по этому адресу. Тем самым, те, кто обращался за этим файлом по этому адресу, возможно, уже получили файл и теперь могут передать его следующему запросившему. Эта система работает аналогично BitTorrent-трекеру. xs=http://cache.freebase.be/ Архивная копия от 3 октября 2009 на Wayback Machine[ sha1 хеш файла ] Ссылка на ED2K источникxs=ed2kftp://[Адрес клиента]:[Порт клиента]/[ed2k hash]/[file size]/ Отображаемый размер (dl)Магнитные ссылки ссылаются только на один файл. В некоторых DC++-клиентах есть работающая реализация ссылок на каталоги. Такие ссылки инвариантны относительно переименования файлов в каталоге, но неинвариантны относительно удаления, изменения или добавления таких файлов, как Thumbs.db, program.ini и тому подобных, поэтому более надёжный способ сослаться на каталог — создать метафайл. Метафайл является файлом, его можно послать в приложении или сохранить на web-сайте, но также на него можно сослаться магнитной ссылкой, например, в чате. Однако, параметр xl такой ссылки характеризует размер метафайла, но не размер каталога, что неудобно. Параметр dl характеризует именно размер каталога, описываемого метафайлом. ПО, распознающее и отображающее магнитные ссылки в читаемом виде, должно отдавать предпочтение параметру dl при отображении размера. dl не является техническим параметром, влияющим на скачивание или поиск, поэтому этот параметр применим в других вариантах использования, например, в магнитных ссылках на составные раздачи BitTorrent. Манифест (mt)Это ссылка на список ссылок (файл лист). Может быть как веб-ссылкой,
так и URN mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ Совместно с остальными может использоваться для получения дополнительной информации по файлу. Пример: magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz &xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY &mt=urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q Данный магнет содержит данные одного файла, а часть mt содержит BTIH .torrent файла который содержит дополнительную информацию по файлу. Ключевые слова (kt)Это поле задаёт строку для поиска в P2P сетях. kt=martin+luther+king+mp3 Адрес трекера (tr)URL трекера. Используется для получения BitTorrent источников без использования сети DHT. Позволяет обойтись без торрент файла (он скачивается у полученных источников)[4].
Битрейт (br)Скорость загрузки (битрейт), при которой части файла можно запрашивать последовательно. Загрузка последовательно происходит только в части файла от начала и до точки воспроизведения[5]. Если пир не имеет доступных частей для последовательной загрузки, запрашивается случайная из другой части файла[6]. br=192000 Расчёт: br=[размер файла в байтах]*8 / [продолжительность аудио или видео в секундах] Алгоритм использования в p2p-клиенте: 1 Если (скорость загрузки файла меньше заданного битрейта) то файл загружается случайным порядком; 2 Иначе Если (скорость загрузки непрерывного участка от начала файла меньше или равна битрейту) то файл загружается последовательно; Иначе файл загружается случайно; Дополнение формата (x.)Для самостоятельного дополнения формата неофициальными параметрами для них предусмотрен префикс 'x.' x.[название нового параметра]=[данные нового параметра (URL encoded)] Группы параметровНазваниям параметров одной группы добавляется суффикс '.' (точка) и индекс группы. magnet:?xt.1=[ URN первого файла ]&xt.2=[ URN второго файла ] ЗамечаниеНекоторые программы, создающие magnet-ссылку, не кодируют специальные и национальные символы в URI представление (%20) и тем самым эти ссылки на веб-странице могут вызвать ошибки. Особенно это важно, когда ссылка, вставляемая в magnet-ссылку, содержит знаки «&»; они должны быть заменены на «%26». URI-кодированиеВставляемые ссылки в предназначенные для этого поля (as, xs, tr) перед этим должны быть URI-кодированы[7]. URL трекера http://tracker.example.org/announce.php?uk=1111111111& в magnet-ссылке должен выглядеть так magnet:?tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26
Вставка в HTMLПеред вставкой в HTML-код в ссылке необходимо заменить все знаки «&» на «&». Исходный магнет magnet:?dn=file.ext&tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26 при вставке в HTML-код должен выглядеть так <a href="magnet:?dn=file.ext&tr=http%3A%2F%2Ftracker.example.org%2Fannounce.php%3Fuk%3D1111111111%26">file.ext</a> Это можно сделать, воспользовавшись программой Notepad++ v5.4.5+, при помощи пункта меню TextFX -> TextFX Convert -> Encode HTML (&<>") Разбиение на строкиПри необходимости разбить ссылку на строки[10], переход на новую строку лучше ставить перед знаком «&» (амперсанд). В таком случае, встретив его в начале строки, можно легко понять, что это продолжение magnet-ссылки. magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz &xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY &xt=urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q ПубликацияВ некоторых форумах делают специальный BBCode тег [magnet], но, если его нет, можно попробовать воспользоваться тегом [url]. При вставке магнета в тег [url] парсер форума может сделать его непригодным для использования. Чтобы обойти это ограничение, можно воспользоваться сайтом[11], который позволит сделать из магнет-ссылки url, добавив его адрес в начало. Пример: https://ivan386.github.io/#magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY Архивная копия от 15 января 2015 на Wayback Machine Кликнув по такой ссылке, пользователь попадёт на страницу, которая перенаправит его на исходную magnet-ссылку. Сама magnet-ссылка при этом не отправляется в GET-запросе серверу, что делает её невидимой для провайдера и сервера. Но в социальных сетях при публикации такая ссылка может обрезаться из-за символов «#» и «:» до символа «?». В таком случае, удалив их, можно обойти это ограничение, но при этом данные magnet-ссылки уже будут передаваться в GET-запросе серверу. Пример: https://ivan386.github.io/magnet?xl=10826029&dn=mediawiki-1.15.1.tar.gz&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY Пример «универсальной» magnet-ссылкиMagnet-ссылка на файл mediawiki-1.15.1.tar.gz (для удобства восприятия ссылка разбита на строки): 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 Архивная копия от 28 декабря 2021 на Wayback Machine[12] ![]() Данная ссылка может быть закодирована в виде QR-кода. Также данная ссылка может быть сокращена с помощью некоторых служб сокращения ссылок, поддерживающих URI-схему tinyurl.com/lr85y2g Это может быть полезно в ряде случаев, например, при публикации magnet-ссылки в Twitter, размер сообщения в котором ограничен 140 символами, или при кодировании magnet-ссылки в виде QR-кода с целью уменьшения размера последнего. Данная ссылка содержит необходимую информацию для возможности скачивания по ней в пяти P2P-сетях: eDonkey2000, Direct Connect, BitTorrent, Gnutella, Gnutella2. Это позволяет программам-клиентам, поддерживающим несколько P2P-сетей, осуществлять межсетевую загрузку и раздачу файлов. Большинство программ-клиентов не могут корректно обработать (разобрать) универсальную ссылку и/или не поддерживают некоторые протоколы и не умеют игнорировать неподдерживаемые параметры, либо чувствительны к взаимному расположению параметров в magnet-ссылках. В таких случаях ссылку необходимо предварительно подготовить: расположить параметры в ссылке в нужном порядке и/или удалить неподдерживаемые параметры. Также в ней реализована схожая с торрент-трекером система для сетей Gnutella2 и Direct Connect:
Особенности поддержки в клиентах
«Да» — поддерживается; «Нет» — не поддерживается; «?» — поддержка неизвестна. Большинство клиентов «перехватывают» magnet-ссылку только из браузера. Поэтому magnet-ссылку необходимо вставить в адресную строку браузера и перейти по ней. Для другого типа достаточно просто кликнуть мышью по ссылке. GreyLink и FlylinkDC++ позволяют вводить magnet-ссылки в клиенте («Файл → Ввести магнитную ссылку…», либо «Ctrl+M»). EiskaltDC++ позволяет скопировать magnet-ссылку в панель быстрого поиска и нажать Ввод, открыть ссылку из буфера обмена («Файл → Открыть магнет-ссылку», либо «Ctrl+I») или передать ссылку в качестве аргумента при запуске программы. aMule 2.2«Воспринимает» magnet-ссылку только если её вставить в строку eD2k Link внизу клиента. Поэтому ссылку необходимо предварительно «собрать», скопировать, вставить в это поле и нажать кнопку добавить. ED2K Хеш, размер и имя файла должны быть первыми и в таком порядке. Клиент делит ссылку. Данные о размере файла и его хеш могут быть в разных частях. Из-за этого ссылка может стать непригодной для скачивания. См. также
Примечания
Ссылки
|
Portal di Ensiklopedia Dunia