Интернет магазин китайских планшетных компьютеров



Компьютеры - Magnet-ссылка - Техническое описание

23 января 2011


Оглавление:
1. Magnet-ссылка
2. Применение
3. Техническое описание
4. Пример
5. Особенности поддержки в клиентах



Магнет может содержать один или несколько параметров, разделенных между собой знаком '&'. Порядок следования параметров не документирован. Для некоторых значений важно положение параметра для правильного синтаксического анализа клиентом магнет-ссылки.

 magnet:?xl=&dn=&xt=urn:tree:tiger:

Параметры

dn — Имя файла
xl — Размер файла в байтах
dl — Отображаемый размер в байтах
xt — URN, содержащий хеш файла
as — Веб-ссылка на файл в Интернете
xs — P2P ссылка
kt — Ключевые слова для поиска
mt — Ссылка на метафайл, который содержит список магнетов
tr — Адрес трекера для BitTorrent клиентов.

URN, содержащий хеш

Данная часть магнет-ссылки является самой главной. Именно по указанному в ней хешу производится поиск источников и проверка файла.

TTH

Хеш используется в сетях Direct Connect и Gnutella

 xt=urn:tree:tiger:

SHA-1

Хеш используется в сетях Gnutella, Gnutella2

 xt=urn:sha1:

BitPrint

Это последовательная запись хеша SHA-1 и TTH, разделённых точкой. Хеш используется в Gnutella2. Direct Connect использует только TTH часть BitPrint

 xt=urn:bitprint:.

ED2K Hash

Хеш используется в EDonkey2000

 xt=urn:ed2k:

AICH

Неофициальный URN для магнет. eDonkey2000 клиентами пока не читается. Хеш используется в eDonkey2000 для восстановления целостности файла.

  xt=urn:aich:

Магнет-ссылки с AICH создаёт, к примеру, Rhash.

Kazaa Hash

Хеш используется в FastTrack

 xt=urn:kzhash:

BTIH

Хеш используется в сетях BitTorrent

 xt=urn:btih:

MD5

Хеш используется в Gnutella2

 xt=urn:md5:

CRC-32

Неофициальный URN для магнет. В P2P сетях не используется.

 xt=urn:crc32:

Веб-ссылки на файл

Существует два вида ссылок, которые можно вставить в магнет-ссылку.

Обычная

Эта ссылка указывает адрес файла на сервере. Клиент не сразу обращается по ней, а только по прошествии некоторого времени. Это было сделано, чтобы не перегружать сервер запросами, а сначала попытаться найти файл в P2P сетях.

 as=

P2P

Эта ссылка — обычно адрес файла не на сервере, а на P2P клиенте или адрес хаба. По этой ссылке клиент пытается сразу соединиться и запросить файл или его источники. Данное поле обычно используется p2p клиентами для хранения источника. Ссылка может содержать хеш файла.

Content-Addressable Web URL

Данный вид ссылки в основном используется только клиентом Shareaza.

 xs=http://:/uri-res/N2R?
Ссылка на DirectConnect хаб с источниками файла

По этой ссылке клиент DirectConnect сразу же соединяется с указанным хабом. Правильно работает только в raw виде в конце магнет-ссылки. Позволяет собраться качающим один тот же файл по этой магнет-ссылке на одном хабе.

 xs=dchub://:

Для вставки в магнет-ссылку желательно использовать адрес крупного публично доступного Direct Connect хаба на котором нет ограничений по размеру шары.

Ссылка на кеш источников файла для Gnutella2

В данном случае ссылка указывает не на клиент, а на кеш источников. Кеш не имеет у себя файла, но записывает и выдаёт адреса тех, у кого открыт порт на раздачу и он обратился по этому адресу. Тем самым, те, кто обращался за этим файлом по этому адресу, возможно, уже получили файл и теперь могут передать его следующему запросившему. Эта система работает аналогично BitTorrent трекеру.

 xs=http://cache.freebase.be/
Ссылка на ED2K источник
 xs=ed2kftp://:///

Отображаемый размер

Магнитные ссылки ссылаются только на один файл. В некоторых DC++ клиентах есть работающая реализация ссылок на папки. Такие ссылки инвариантны относительно переименования файлов в папке, но неинвариантны относительно удаления, изменения или добавления таких файлов, как Thumbs.db, program.ini и тому подобных, поэтому более надёжный способ сослаться на папку — создать метафайл. Метафайл является файлом, его можно послать в приложении или сохранить на web–сайте, но также на него можно сослаться магнитной ссылкой, например, в чате. Однако, xl параметр такой ссылки характеризует размер метафайла, но не размер директории, что неудобно. Параметр dl характеризует именно размер директории, описываемой метафайлом. ПО, распознающее и отображающее магнитные ссылки в читабельном виде, должно отдавать предпочтение параметру dl при отображении размера. dl не является техническим параметром, влияющим на скачивание или поиск, поэтому этот параметр применим в других вариантах использования, например, в магнитных ссылках на составные раздачи BitTorrent.

Манифест

Это ссылка на список ссылок. Может быть как веб-ссылкой,

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

так и 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 файла который содержит дополнительную информацию по файлу.

Ключевые слова

Это поле задаёт строку для поиска в P2P сетях.

 kt=martin+luther+king+mp3

Адрес трекера

URL трекера. Используется для получения BitTorrent источников без использования сети DHT. Позволяет обойтись без торрент файла.

 tr=http://example.com/announce

Дополнение формата

Для самостоятельного дополнения формата неофициальными параметрами предусмотрен для них префикс 'x.'

 x.=

Группы параметров

Названиям параметров одной группы добавляется суффикс '.' и индекс группы.

 magnet:?xt.1=&xt.2=

Замечание

Некоторые программы, создающие магнет-ссылку, не кодируют специальные и национальные символы в URI представление и тем самым эти ссылки на веб-странице могут вызвать ошибки. Особенно это важно, когда ссылка, вставляемая в магнет, содержит знаки «&»; они должны быть заменены «%26».

URI Кодирование

Вставляемые ссылки в предназначенные для этого поля перед этим должны быть URI-кодированы

URL трекера

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

в магнет-ссылке должен выглядеть так

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

Это можно сделать, воспользовавшись программой Notepad++ v5.4.5+, при помощи пункта меню TextFX -> TextFX Convert -> Encode URI Component

Кодирование URL

" #  % & ' * ,  :  ; < >  ? [ ^ ` { | } <пробел>
 %22  %23  %25  %26  %27  %2a  %2c  %3a  %3b  %3c  %3e  %3f  %5b  %5e  %60  %7b  %7c  %7d  %20

Вставка в HTML

Перед вставкой в HTML код в ссылке необходимо заменить все знаки „&“ на „&amp;“.

Исходный магнет

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

при вставке в HTML код должен выглядеть так

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

Это можно сделать, воспользовавшись программой Notepad++ v5.4.5+, при помощи пункта меню TextFX -> TextFX Convert -> Encode HTML

Разбиение на строки

При необходимости разбить ссылку на строки, переход на новую строку лучше ставить перед знаком «&». В таком случае, встретив его в начале строки, можно легко понять, что это продолжение магнет-ссылки.

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

Публикация

В некоторых форумах делают специальный BBCode тег, но, если его нет, можно попробовать воспользоваться тегом.

При вставке магнета в тег парсер форума может сделать его непригодным для использования. Чтобы обойти это ограничение, можно воспользоваться сайтом, который позволит сделать из магнет-ссылки url, добавив его адрес в начало.

Пример:

http://sure-raza.com/magnet:?xl=10826029&dn=mediawiki-1.15.1.tar.gz&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY

Кликнув по такой ссылке, пользователь попадёт на страницу, которая перенаправит на исходную магнет-ссылку.



Просмотров: 4817


<<< Kademlia
Napster >>>