Программирования патчера |
Здравствуйте, гость ( Вход | Регистрация )
Программирования патчера |
21.6.2009, 4:00
Сообщение
#1
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
Вопрос наверно к разработчикам. У меня встала проблема, написать свой патчер для ретеркера. Но опыта с BitTorrent по части кодинга не имел. Попытался ручками менять файл(*.torrent) не выходит. Вот даже не знаю, что и делать. Как туда прописать ретрекер. А так вроде принцип понятен. Спасибо надеюсь кто поможет.
|
|
|
21.6.2009, 20:57
Сообщение
#2
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
Все разобрался ответ нашел тут http://wiki.depthstrike.com/index.php/P2P:...ns:Multitracker
|
|
|
22.6.2009, 14:50
Сообщение
#3
|
|
Участник Группа: Пользователи Сообщений: 13 Регистрация: 31.5.2009 Пользователь №: 1 791 |
тоже недавно написал свой. работает вроде, даже лучше чем Torrent Patcher если будут вопросы - спрашивай, попробую ответить.
|
|
|
22.6.2009, 15:47
Сообщение
#4
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
Можете пояснить с announce-list, вы его в конец документа помещаете так ?
Какой он должен иметь формат announce-list, а то я уже по битово начел разбирать документ. Может ссылочку подкинете. |
|
|
22.6.2009, 21:08
Сообщение
#5
|
|
Участник Группа: Пользователи Сообщений: 13 Регистрация: 31.5.2009 Пользователь №: 1 791 |
Можете пояснить с announce-list, вы его в конец документа помещаете так ? Какой он должен иметь формат announce-list, а то я уже по битово начел разбирать документ. Может ссылочку подкинете. ну в Torrent Patcher'е он почему-то записывается в конец, хотя ето неправильно, т.к. ключи (announce, announce-list и т.д.) должны идти в алфавитном порядке. надо его писать сразу после ключа announce. в той спецификации вроде нормально описано: надо свой ретрекер поместить в отдельный список, чтобы он работал паралельно основному. иначе (если поместить его в тот самый список где знаходится и основной) они будут работать в случайном порядке (чтобы уменьшить нагрузку на сервера). тут еще есть спецификации: http://wiki.theory.org/index.php/BitTorrentSpecification http://www.bittorrent.org/beps/bep_0000.html в процессе еще нарыл такой проектик: http://trac.calitko.org/changeset/releases....6.2%2C110.1.11 |
|
|
22.6.2009, 23:39
Сообщение
#6
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
в процессе еще нарыл такой проектик: http://trac.calitko.org/changeset/releases....6.2%2C110.1.11 Процесс реализации требует декодирования самого *.torrent файл. Или можно обойтись просто чтением файла, вставкой элементов announce-list c данными торрента-трекера и ретрекера ? Если просто найти вставить свои данные просто не работают. Как говорится, если лесть в дебри, нужно знать, а нужно ли это делать. |
|
|
23.6.2009, 1:40
Сообщение
#7
|
|
Участник Группа: Пользователи Сообщений: 13 Регистрация: 31.5.2009 Пользователь №: 1 791 |
Процесс реализации требует декодирования самого *.torrent файл. Или можно обойтись просто чтением файла, вставкой элементов announce-list c данными торрента-трекера и ретрекера ? Если просто найти вставить свои данные просто не работают. Как говорится, если лесть в дебри, нужно знать, а нужно ли это делать. по тому проекту не знаю.. а почему не работает? может неправильно вставляешь? может сдесь будет более наглядно видно: http://trac.calitko.org/browser/releases/c....6.2%2C110.1.11 после announce добавляем announce-list с трекером из announce + наш трекер. должно получится как-то так: Код 8:announce => 80:http://tracker.calitko.org/torrents.php?passkey=d7c034325e7274bb2s346c6fc5b71307
13:announce-list => l l 80:http://tracker.calitko.org/torrents.php?passkey=d7c034325e7274bb2s346c6fc5b71307 e l 32:http://somehost.com/announce.php e e |
|
|
23.6.2009, 2:33
Сообщение
#8
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
по тому проекту не знаю.. а почему не работает? может неправильно вставляешь? может сдесь будет более наглядно видно: http://trac.calitko.org/browser/releases/c....6.2%2C110.1.11 после announce добавляем announce-list с трекером из announce + наш трекер. должно получится как-то так: Код 8:announce => 80:http://tracker.calitko.org/torrents.php?passkey=d7c034325e7274bb2s346c6fc5b71307 13:announce-list => l l 80:http://tracker.calitko.org/torrents.php?passkey=d7c034325e7274bb2s346c6fc5b71307 e l 32:http://somehost.com/announce.php e e вот часть кода CODE sd = "l3:announce-listll" + v + ":" + httptraker + "el80http://"+main_url+":8080/RtBit/announce.php?mt=" + main_tracker + "&l=" + length + "&pu=" + publisher_url + "&descr=" + descr + "&eee"; которую я добавляю. v- это загадочная цифра в конце announce[**], это трекер httptraker announce то есть основной , а дальше мой трекер c переменными. Вот не понимаю (выделаны цифры и буквы которые в коде ) я не понимая по какому принципу берутся, ставлю от балды ? |
|
|
23.6.2009, 11:01
Сообщение
#9
|
|
Участник Группа: Пользователи Сообщений: 13 Регистрация: 31.5.2009 Пользователь №: 1 791 |
Вот не понимаю (выделаны цифры и буквы которые в коде ) я не понимая по какому принципу берутся, ставлю от балды ? потому и не работает написано в спецификации: Цитата byte strings строки. сначала идет число, которое означает длину строки. например "4:spam" значит что после двоеточия будет строка длиной в 4 байта. еще примеры: "8:announce", "13:announce-list", "32:http://somehost.com/announce.php".Byte strings are encoded as follows: <string length encoded in base ten ASCII>:<string data> Note that there is no constant beginning delimiter, and no ending delimiter. Example: 4:spam represents the string "spam" Цитата lists списки. начинаються символом "l" (маленькая "L") и заканчиваються символом "e".Lists are encoded as follows: l<bencoded values>e The initial l and trailing e are beginning and ending delimiters. Lists may contain any bencoded type, including integers, strings, dictionaries, and other lists. Example: l4:spam4:eggse represents the list of two strings: [ "spam", "eggs" ] например запись вида "l4:spam4:eggse" означет что задан список с двух елементов, первым из которых есть строка "spam", вторым - строка "eggs". также есть еще целые числа: Цитата integers т.е. числа задаються в виде "i<число_в_десятичной_системе>e". например запись вида "i254e" значит что задано число "254", "i-872e" - число "-872".Integers are encoded as follows: i<integer encoded in base ten ASCII>e The initial i and trailing e are beginning and ending delimiters. You can have negative numbers such as i-3e. You cannot prefix the number with a zero such as i04e. However, i0e is valid. Example: i3e represents the integer "3" и словари: Цитата dictionaries словари. в словарях сначала идет ключ, потом его значение. т.е. если есть выражение "d3:cow3:moo4:spam4:eggse", ето значит что задан словарь, в котором ключ "cow" имеет значение "moo", а ключ "spam" имеет значение "eggs".Dictionaries are encoded as follows: d<bencoded string><bencoded element>e The initial d and trailing e are the beginning and ending delimiters. Note that the keys must be bencoded strings. The values may be any bencoded type, including integers, strings, lists, and other dictionaries. Keys must be strings and appear in sorted order (sorted as raw strings, not alphanumerics). The strings should be compared using a binary comparison, not a culture-specific "natural" comparison. Example: d3:cow3:moo4:spam4:eggse represents the dictionary { "cow" => "moo", "spam" => "eggs" } еще один пример: "d4:spaml1:a1:bee". задан словарь, в котром ключ "spam" содержит список из двух елементов: "a" и "b". на базе етого всего строится торент файл. значением ключа "announce-list" должен быть список, елементы которого есть списками трекеров (список списков). например както так: 13:announce-listll80:http://tracker.calitko.org/torrents.php?passkey=d7c034325e7274bb2s346c6fc5b71307el32:http://somehost.com/announce.phpee |
|
|
23.6.2009, 11:35
Сообщение
#10
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
Ага чета не уловил ссылку на вики, ага спасибо.за разъяснение, буду читать внимательней спецификации протокола. Большое спасибо за помощь.
|
|
|
23.6.2009, 12:25
Сообщение
#11
|
|
Новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.6.2009 Пользователь №: 2 005 |
Спасибо еще раз все заработало.
|
|
|
28.7.2009, 12:37
Сообщение
#12
|
|
Новичок Группа: Пользователи Сообщений: 5 Регистрация: 27.7.2009 Пользователь №: 2 290 |
|
|
|
28.7.2009, 12:37
Сообщение
#13
|
|
Новичок Группа: Пользователи Сообщений: 5 Регистрация: 27.7.2009 Пользователь №: 2 290 |
|
|
|
26.10.2009, 12:16
Сообщение
#14
|
|
Новичок Группа: Пользователи Сообщений: 3 Регистрация: 24.10.2009 Пользователь №: 3 103 |
перезалей пожалуйста
|
|
|
Текстовая версия | Сейчас: 11.12.2024, 21:32 |