Как разговаривать с трекерами напрямую — скажем, с помощью curl?

Страницы:  1
Ответить
 

Kindaro

Стаж: 15 лет 9 месяцев

Сообщений: 27


Kindaro · 10-Май-24 16:59 (4 месяца 20 дней назад, ред. 14-Май-24 06:55)

Согласно пособию https://wiki.theory.org/BitTorrent_Tracker_Protocol, следующий запрос должен привести к какому-либо ответу:
Код:
curl --verbose 'http://bt.t-ru.org/ann?info_hash=12345678901234567890&peer_id=ABCDEFGHIJKLMNOPQRST&ip=255.255.255.255&port=6881&downloaded=1234&left=98765&event=stopped'
Однако, ответ не приходит:
Код:
curl: (52) Empty reply from server
http://retracker.local/ann вместо этого сообщает:
Код:
<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>

  1. Если использовать info_hash существующей раздачи — ответ остаётся таким же.
  2. Если извлечь ссылку из aria2c — ответ остаётся таким же.
Ожидаемо ли такое поведение? Как уговорить трекер сообщить мне список peers? Есть ли какие-либо технические пособия, разъясняющие, как это всё должно работать?
[Профиль]  [ЛС] 

Kindaro

Стаж: 15 лет 9 месяцев

Сообщений: 27


Kindaro · 10-Май-24 17:41 (спустя 41 мин.)

Удалось достичь частичного успеха, подключившись через другого провайдера. Следующий запрос:
Код:
curl --verbose 'http://bt.t-ru.org/ann?info_hash=C%24%F09Zx%3C%5C%1Cb%81%3B%04%AF%15%DB%7FUp~&peer_id=BBCDEFGHIJKLMNOPQRST&ip=255.255.255.255&port=6881&downloaded=0&left=2554&uploaded=0&event=started'
— Приводит к ответу вида:
Код:
00000000: 6438 3a69 6e74 6572 7661 6c69 3330 3932  d8:intervali3092
00000010: 6531 323a 6d69 6e20 696e 7465 7276 616c  e12:min interval
00000020: 6933 3039 3265 353a 7065 6572 7333 363a  i3092e5:peers36:
00000030: b6e8 7075 1ae1 b6e8 7075 1b44 538b aa2b  ..pu....pu.DS..+
00000040: c1e5 0101 a906 1b44 5e1d 17e4 76e4 b6e8  .......D^...v...
00000050: 7075 1b56 65                             pu.Ve
По-видимому, запросы можно совершать один раз в час.
Непонятно, каким образом образуется такой странный info_hash. Это должна быть sha1 сумма. Вместо этого мы видим непонятную URL-encoded строчкy. Значение peers тоже непонятно — там должен быть словарь, а вместо этого там просто 36 непонятных байт.
[Профиль]  [ЛС] 

Hanabishi

Старожил

Стаж: 14 лет 5 месяцев

Сообщений: 2716

Hanabishi · 11-Май-24 00:58 (спустя 7 часов, ред. 11-Май-24 01:00)

https://www.bittorrent.org/beps/bep_0003.html#trackers
https://www.bittorrent.org/beps/bep_0023.html
И да, рутрекер проверяет юзерагент клиента. То есть в запрос нужно добавить заголовок вида
Код:
curl -H 'User-Agent: qBittorrent/4.6.4' ...
[Профиль]  [ЛС] 

Kindaro

Стаж: 15 лет 9 месяцев

Сообщений: 27


Kindaro · 14-Май-24 06:59 (спустя 3 дня)

Hanabishi Спасибо! Я уже тоже разобрался. Пришлось написать программу для зашифровки info_hash и расшифровки списка peers и peers6. Вот что получилось: https://github.com/kindaro/trickle.
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 15-Май-24 21:19 (спустя 1 день 14 часов, ред. 17-Май-24 23:53)

Kindaro
Спасибо. Интересная прога. Скомпилировал для убунты.
Только в Main.hs заменил peer_id и user-agent с trickle на qBittorrent.
На рутрекере удалось получить список пиров, а на пронолабе пишет failure reason15:Invalid passkeye. Может, как-то не так кодируется, не знаете в чем дело? И еще https не поддерживает. К счастью, большинство трекеров работают по http.
Кстати, торрент файлы удобно редактировать в torrent-file-editor (и просто смотреть данные).
А trickle еще так называется утилита для ограничения скорости.
В логе Wireshark видно, что trickle затирает из URL passkey (/ann?uk=PASSKEY&info_hash становится /ann?info_hash)
А еще qBittorrent почему-то на лабе не отправляет peer_id, а вместо него параметр no_peer_id=1
trickle отправляет peer_id
Еще некий параметр key с каким-то кодом.
trickle отправляет IP и PORT, qBittorrent только PORT.
У trickle left=0 (как и все остальное), у qBittorrent в left цифры нескачанного (т.е. вес всей раздачи, если ничего не скачано еще).
А также некоторые параметры, которых нет в trickle:
corrupt=0
numwant=200
compact=1
supportcrypto=1
redundant=0
Но главный косяк в том, что trickle из URL затирает passkey.
Пробовал подправить запрос после trickle, дописав &uk=PASSKEY (в proxychains + Charles rewrite, хоть это и не очень удобно), но оказалось info_hash зависит от него и сервер тоже не признал. Создавать корректную строку должен сам trickle, а он почему-то решил passkey удалить. Где это настраивается с ходу не нашел. Похоже trickle все переменные пересоздает сам, беря из url только домен.
В общем, дописал в исходный код в хвост
write ("uk", "PASSKEY")
Где PASSKEY мой passkey, хоть это не очень хорошо. Теперь сервер жалуется на Invalid peer_id
А peer_id ведь пронолаб не использует. Пробовал и удалять
write ("peer_id", Text.encodeUtf8 "-qB4630-" <> entropy)
и заменять на
write ("no_peer_id", "1")
Не помогает.
Задачка-то по получению пиров из командной строки не проста. Найденные решения не работают.
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 25-Май-24 16:30 (спустя 9 дней)

artenax писал(а):
86267340Задачка-то по получению пиров из командной строки не проста. Найденные решения не работают.
Из подручных средств, максимально лёгким путём и минимум кода, "bencoding.inc.php" первый попавшийся простой php-bencoding:
Код:

#!/bin/php
<?php
require 'bencoding.inc.php';
if (!isset($argv[1]) || strlen($argv[1]) != 40) exit("Invalid info_hash\n");
$info_hash = urlencode(hex2bin($argv[1]));
$peer_id = '-TR4100-'.substr(md5($info_hash),0,12);
$tracker = !isset($argv[2]) ? 'http://retracker.local/announce' : $argv[2];
$cmd = <<<EOD
curl -H 'User-Agent: Transmission/4.1.0' \
-H 'X-Forwarded-For: 10.20.30.40' \
-G -d 'info_hash=$info_hash' \
-d 'peer_id=$peer_id' \
-d 'port=54320' -d 'ip=10.20.30.40' \
-d 'uploaded=0' -d 'downloaded=0' -d 'left=0' -d 'numwant=80' -d 'event=started' -d 'compact=1' \
-s --connect-timeout 7 --compressed \
'$tracker'
EOD;
if($r = shell_exec($cmd)){
$benc = new bencoding();
if($d = $benc->decode($r)){
foreach(str_split($d['peers'], 6) as $p){
$peer = unpack('Nip/nport', $p);
echo long2ip($peer["ip"]).':'.$peer["port"]."\n";
}
}
}
результат
Код:

./tr-peers F8F71A6B3A46EE7B1E96EFBB4A7A60C9705285F7 http://bt3.t-ru.org/ann
92.248.141.211:54047
92.37.143.2:45682
46.158.172.138:62001
83.246.176.86:25214
89.109.50.167:14960
192.162.127.95:59806
91.235.185.223:23160
95.189.77.113:35875
176.109.5.59:61274
5.165.212.53:30461
5.18.255.72:41479
159.253.170.73:22203
5.29.22.218:56196
212.12.15.13:55258
94.232.208.60:42944
195.68.152.19:16799
188.162.237.47:36434
5.44.169.87:51178
81.18.140.41:43439
62.118.93.181:37281
85.174.197.205:59988
188.244.132.199:34139
178.47.208.77:28511
46.233.217.10:16108
213.252.69.169:32095
5.128.253.37:28151
5.100.102.38:13009
95.173.132.117:14298
188.170.199.61:46808
79.105.166.9:22977
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 25-Май-24 17:04 (спустя 34 мин., ред. 26-Май-24 06:49)

yandrey0
Благодарю. Работает. Даже с лабом. Хотя, иногда он жадничает, но это и с обычными клиентами тоже.
Возможно, имеет смысл указать left, например, 80.
Upd: Расскажу как пользоваться подробнее, если кто не знает:
Сохраните код выше в файл peers (без расширения, Unix переносы строк, UTF-8 без BOM, лучше в нормальных текстовых редакторах).
Положите рядом файл bencoding.inc.php
отсюда:
Код:
https://github.com/philippelyp/php-bencoding/raw/main/include/bencoding.inc.php
Оба файла должны быть рядом.
Установите php. Погуглите как это сделать. Он должен быть в PATH. Т.е. когда вы открываете терминал и пишете php --version должна показываться версия.
Зайдите в папку, где лежат файлы в терминале. Например, cd Downloads
И вставляйте
Код:
peers F8F71A6B3A46EE7B1E96EFBB4A7A60C9705285F7 http://bt3.t-ru.org/ann
или
Код:
php peers F8F71A6B3A46EE7B1E96EFBB4A7A60C9705285F7 http://bt3.t-ru.org/ann
или
Код:
./peers F8F71A6B3A46EE7B1E96EFBB4A7A60C9705285F7 http://bt3.t-ru.org/ann
Заменив хэш и анонсер при необходимости.
Как я сказал, в коде peers лучше указать left=80 вместо left=0, иначе лаб не отдает пиров, по крайней мере сразу.
Можно заменить user-agent и peer_id на те, которые использует qBittorrent или utorrent.
peers можно назвать peers.php. На Windows это лучше, наверное. Хотя, не факт, что скрипт будет работать в Windows.
Должен быть также установлен curl и быть в PATH (т.е. в /usr/local/bin или C:\Windows).
Вот как у меня сейчас:
peers
Код:

#!/bin/php
<?php
require 'bencoding.inc.php';
if (!isset($argv[1]) || strlen($argv[1]) != 40) exit("Invalid info_hash\n");
$info_hash = urlencode(hex2bin($argv[1]));
$peer_id = '-qB4630-'.substr(md5($info_hash),0,12);
$tracker = !isset($argv[2]) ? 'http://retracker.local/announce' : $argv[2];
$cmd = <<<EOD
curl -H 'User-Agent: qBittorrent/4.6.3' \
-H 'X-Forwarded-For: 104.28.156.92' \
-G -d 'info_hash=$info_hash' \
-d 'peer_id=$peer_id' \
-d 'port=15520' -d 'ip=104.28.156.92' \
-d 'uploaded=0' -d 'downloaded=0' -d 'left=80' -d 'numwant=80' -d 'event=started' -d 'compact=1' \
-s --connect-timeout 7 --compressed \
'$tracker'
EOD;
if($r = shell_exec($cmd)){
$benc = new bencoding();
if($d = $benc->decode($r)){
foreach(str_split($d['peers'], 6) as $p){
$peer = unpack('Nip/nport', $p);
echo long2ip($peer["ip"]).':'.$peer["port"]."\n";
}
}
}
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 26-Май-24 08:51 (спустя 15 часов)

left это сколько байт осталось загрузить, 0 будешь сидом, больше 0 - личем.
numwant - сколько пиров хочется получить от трекера, здесь игнорируется, отдает максимум 30.
Заголовок X-Forwarded-For заменяет также игнорируемый ip здесь.
curl, для лучшей совместимости, можно переделать на php функции, просто мне как-то привычнее и нагляднее командой.
Не лишним будет добавить вывод сообщений, ошибок и не вencode ответа от трекера:
Цитата:
...
foreach(array('failure reason','warning message') as $m) if(isset($d[$m])) echo($d[$m]."\n");
if(isset($d['peers'])){
foreach(str_split($d['peers'], 6) as $p){
$peer = unpack('Nip/nport', $p);
echo long2ip($peer["ip"]).':'.$peer["port"]."\n";
}
}
} else echo $r;
...
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 29-Май-24 16:35 (спустя 3 дня, ред. 29-Май-24 16:37)

yandrey0 писал(а):
86307671left это сколько байт осталось загрузить, 0 будешь сидом, больше 0 - личем
Я понимаю. Я пытаюсь понять почему лаб иногда возвращает единственного пира (меня), хотя на раздаче есть настоящий сид. Даже полноценным клиентам вроде qBittorrent. Помогает повторный запрос через некоторое время, в случае qBittorrent.
Думал, не нравится, если left=0 (и все по нулям), но похоже дело не в этом. Или какая-то защита.
Может быть дело в том, что отправляемый IP и IP с которого соединяешься, должны быть максимально близки. А я использую warp у которого IP скачут. Может поэтому и официальные клиенты затрагиваются.
Но замечаю на редких раздачах, где мало сидов. А где сидов много, лаб отдает сразу почему-то.
yandrey0 писал(а):
86307671Не лишним будет добавить вывод сообщений, ошибок и не вencode ответа от трекера
Это в конец вписать?
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 29-Май-24 17:02 (спустя 26 мин.)

artenax писал(а):
86319896Я пытаюсь понять почему лаб иногда возвращает единственного пира (меня), хотя на раздаче есть настоящий сид.
Скорее всего, там трекеры не справляются с нагрузкой и иногда отвечают максимально легко по ресурсам и трафику (нули и ip:port того кто запрашивает), возможно, есть условие что новым пирам и с новых ip чаще прилетают такие ответы, и/или у раздач где много пиров, ответ чаще закэширован и в большинству легко сразу отдаётся.
artenax писал(а):
Это в конец вписать?
Добавления выделены жирным.
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 31-Май-24 03:01 (спустя 1 день 9 часов, ред. 31-Май-24 03:02)

yandrey0
А не знаете почему
Код:
peers e65bdd8be239e5c5d458e675331e032d246bc106 https://torrent.ubuntu.com/announce
выдает всего одного пира 185.125.190.59:6893 принадлежащего Canonical, а qBittorrent получает сотни? Это раздача Xubuntu 24.04. Наверное, там как-то хитро устроено и этот пир уже делится другими?
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 31-Май-24 03:14 (спустя 12 мин.)

artenax писал(а):
86325388а qBittorrent получает сотни?
Прямо точно с этого трекера, а не другого, dht, pex?
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 31-Май-24 03:35 (спустя 21 мин., ред. 31-Май-24 03:38)

dht отключен, а pex включен. Но во флагах есть пиры с трекера (D P).
И вот:

Странная картина.
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 31-Май-24 19:57 (спустя 16 часов)

Сотни полученных от трекера не видно, 229/6 это просто цифра complete/incomplete в announce и scrape ответе, откуда взялись 8 у qBittorrent, непонятно, rTorrent и Transmission получают в списке пиров только одного.
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 01-Июн-24 19:22 (спустя 23 часа, ред. 01-Июн-24 19:22)

yandrey0
Отключил pex и QBittorrent получил всего одного 185.125.190.59:6911 (обратный хост: torrent.ubuntu.com от Canonical). Значит остальных пиров он передает через pex. Как хитро.
В этом случае qBittorrent показал пиры 1, сиды 192, личи 8.
yandrey0 писал(а):
86328014откуда взялись 8 у qBittorrent, непонятно
Отсебятина опять. Приплюсовал личей, видимо. А сиды/личи просто статистика (трекер и единственный сид повязаны, но пиров раздает сид, а не трекер).
А scrape в qBittorrent не отключить, как в utorrent? Чтобы честно информацию показывал. qBittorrent все равно будет считать пиров (он же умный), но будет считать честно.
Кстати, на винде (win8.0, php 8.1.28) не работает скрипт. Пишет:
Код:
solve host: qBittorrent
curl: (3) URL rejected: Bad hostname
Если удалить переносы строк с \ (чтобы команда curl была цельная), то не ругается, но ничего не выводит. Никакие запросы в сеть не отправляются.
Так что, если кому надо - ставьте линукс в виртуалку.
yandrey0
А у вас какой дистр линукса?
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 01-Июн-24 23:30 (спустя 4 часа)

artenax писал(а):
86328314Кстати, на винде (win8.0, php 8.1.28) не работает скрипт.
Как уже писал, использовать php функции, как-то примерно так:
изменения
$cmd = <<<EOD
curl -H 'User-Agent: Transmission/4.1.0' \
-H 'X-Forwarded-For: 10.10.50.30' \
-G -d 'info_hash=$info_hash' \
-d 'peer_id=$peer_id' \
-d 'port=50300' -d 'ip=10.10.50.30' \
-d 'uploaded=0' -d 'downloaded=0' -d 'left=0' -d 'numwant=100' -d 'event=started' -d 'compact=1' \
-s --connect-timeout 7 --compressed \
'$tracker'
EOD;

$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $tracker.(strtok('?', $tracker) ? '?' : '&').urldecode(http_build_query([
'info_hash' => $info_hash,
'peer_id' => $peer_id,
'port' => 50300, 'ip' => '10.10.50.30',
'uploaded' => 0, 'downloaded' => 0, 'left' => 0, 'numwant' => 100, 'event' => 'started', 'compact' => 1
])),
CURLOPT_USERAGENT => 'Transmission/4.1.0',
CURLOPT_HTTPHEADER => ['X-Forwarded-For: 10.10.50.30'],
CURLOPT_RETURNTRANSFER => true
]);
$r = curl_exec($ch);
curl_close($ch);
if($r = shell_exec($cmd)){
if($r){
artenax писал(а):
86328314yandrey0
А у вас какой дистр линукса?
Федора
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 02-Июн-24 17:00 (спустя 17 часов, ред. 02-Июн-24 17:00)

yandrey0 писал(а):
86332584использовать php функции, как-то примерно так
Код:
Fatal error: Uncaught Error: Call to undefined function curl_init() in C:\Windows\apps\peers.php:14
Stack trace:
#0 {main}
  thrown in C:\Windows\apps\peers.php on line 14
yandrey0 писал(а):
86332584Федора
С гномом?
У меня Xubuntu 22.04. А раньше долго пользовался Xubuntu 16.04.
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 02-Июн-24 17:40 (спустя 39 мин.)

artenax писал(а):
86334945Call to undefined function curl_init()
Мне что тут ликбез проводить как php модули(extension) включать?
artenax писал(а):
86334945С гномом?
Нет, 13 лет только xfce, до этого kde, гномом тоже какое то время, уже не помню.
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 02-Июн-24 17:54 (спустя 13 мин.)

yandrey0 писал(а):
86335109Мне что тут ликбез проводить как php модули(extension) включать?
Ну, я не программист, к сожалению. Мне если только AI помогает с кодом.
И виндой-то не пользуюсь. Поставил в виртуалку для другой проги (по электронике), решил заодно проверить как там с php дела. Для виндовых пользователей. Но похоже эта тема не пользуется спросом.
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 02-Июн-24 18:28 (спустя 34 мин., ред. 02-Июн-24 18:28)

artenax
ответ будет в первой позиции поисковика, раскомментить
;extension=php_curl.dll и обратить внимание на extension_dir в php.ini
по расположению php.ini в винде не знаю, с начала века не сталкивался )
artenax писал(а):
86335155Но похоже эта тема не пользуется спросом.
Тоже не вижу в ней большого практического смысла, может, иногда для попытки восстановить связность с украискими пирами, не пуская весь подряд трафик через прокси/впн, просто полюбоваться на пиры с которыми нет коннекта можно и в некоторых торрент клиентах.
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 02-Июн-24 19:28 (спустя 59 мин., ред. 02-Июн-24 19:28)

Благодарю, заработало. Вот мой peers.php:
Подробнее
Код:

#!/bin/php
<?php
require 'bencoding.inc.php';
if (!isset($argv[1]) || strlen($argv[1]) != 40) exit("Invalid info_hash\n");
$info_hash = urlencode(hex2bin($argv[1]));
$peer_id = '-qB4630-'.substr(md5($info_hash),0,12);
$tracker = !isset($argv[2]) ? 'http://retracker.local/announce' : $argv[2];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $tracker.(strtok('?', $tracker) ? '?' : '&').urldecode(http_build_query([
'info_hash' => $info_hash,
'peer_id' => $peer_id,
'port' => 15522, 'ip' => '104.28.156.92',
'uploaded' => 0, 'downloaded' => 0, 'left' => 80, 'numwant' => 100, 'event' => 'started', 'compact' => 1
])),
CURLOPT_USERAGENT => 'qBittorrent/4.6.3',
CURLOPT_HTTPHEADER => ['X-Forwarded-For: 104.28.156.92'],
CURLOPT_RETURNTRANSFER => true
]);
$r = curl_exec($ch);
curl_close($ch);
$benc = new bencoding();
if($d = $benc->decode($r)){
foreach(str_split($d['peers'], 6) as $p){
$peer = unpack('Nip/nport', $p);
echo long2ip($peer["ip"]).':'.$peer["port"]."\n";
}
}
Он лежит в одной папке с bencoding.inc.php, а папка в PATH. И на всякий случай зашел в нее:
Код:
cd C:\Windows\apps
php peers.php [HASH] [TRACKER]
php использовал вот этот:
Код:
https://windows.php.net/downloads/releases/php-8.1.28-Win32-vs16-x86.zip
Распаковал его в C:\php
Потом:
Мой компьютер - Свойства - Дополнительные параметры системы - Переменные среды - Path - Изменить:
добавил в PATH:
Код:
;C:\php
Переименовал php.ini-production > php.ini
Раскомментировал:
Код:
extension=curl
extension_dir = "ext"
yandrey0 писал(а):
86335227ответ будет в первой позиции поисковика
Я даже не знал, что используется dll, причем встроенный (C:\php\ext\php_curl.dll). Думал curl.exe вызывается, потом стал искать ддлку libcurl.dll, а оказывается она встроенная. Надо только раскомментировать.
yandrey0 писал(а):
86335227Тоже не вижу в ней большого практического смысла
Ну, как же. Полезно читерам на трекерах с рейтингом. Получить список пиров, вставить его вручную, удалить трекер из торрент клиента и качать, не анонсируя скачанное (т.е. без рейтинга).
Upd: php 8.1 требует redist 2015-2022.
Только вот лаб опять выдает только мой IP. Тоже не лыком шит.
Но и мы тоже:
pl+
Код:

#! /bin/sh
sudo iptables -t filter -A OUTPUT -d 185.110.92.40 -p tcp --dport 80 -j DROP
sudo iptables -t filter -A OUTPUT -d 185.110.92.41 -p tcp --dport 80 -j DROP
sudo iptables -t filter -A OUTPUT -d 94.140.112.80 -j DROP
sudo iptables -t filter -A OUTPUT -d 95.215.46.63 -j DROP
sudo iptables -t filter -A OUTPUT -d 185.61.148.21 -j DROP
echo pornolab.net:
nslookup pornolab.net | grep -E -v "#53" | grep Address
echo plab.site:
nslookup plab.site | grep -E -v "#53" | grep Address
sudo iptables -L -n | grep -E "DROP|ACCEPT"
echo Done
pl-
Код:

#! /bin/sh
sudo iptables -t filter -D OUTPUT -d 185.110.92.40 -p tcp --dport 80 -j DROP
sudo iptables -t filter -D OUTPUT -d 185.110.92.41 -p tcp --dport 80 -j DROP
sudo iptables -t filter -D OUTPUT -d 94.140.112.80 -j DROP
sudo iptables -t filter -D OUTPUT -d 95.215.46.63 -j DROP
sudo iptables -t filter -D OUTPUT -d 185.61.148.21 -j DROP
echo pornolab.net:
nslookup pornolab.net | grep -E -v "#53" | grep Address
echo plab.site:
nslookup plab.site | grep -E -v "#53" | grep Address
sudo iptables -L -n | grep -E "DROP|ACCEPT"
echo Done
plt
Код:

#! /bin/sh
sudo iptables -L -n | grep -E "DROP|ACCEPT"
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 02-Июн-24 19:32 (спустя 4 мин.)

artenax писал(а):
86335479список пиров, вставить его вручную
какие-то ненужные сложности, после первого анонса, трекер в клиенте удалить или отключить в зависимости от возможностей клиента
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 02-Июн-24 19:47 (спустя 14 мин., ред. 02-Июн-24 23:22)

yandrey0
qBitorrent не позволит. Он тут же забудет список пиров и разорвет с ними коннект, в новых версиях так, сделали в угоду владельцев трекеров (хотя, на открытых раздачах он помнит даже после перезапуска). Поэтому то я стал блочить в iptables (с hosts один раз пролетел, qBitorrent хитрый, может закэшировал DNS или система закэшировала).
Ну, и бывает такое, что раздача редкая. Не докачал, сиды свалили. А новый запрос не сделать просто так, не отправляя статистику. Надо удалять раздачу, перехэшировать, заново добавлять. Неудобно. Пока что такого не случалось, но возможно. В DHT не все есть. Опять же не qBitorrent'ом единым... но я сейчас пользуюсь им. Tixati забросил.
Да и закачка может начаться не сразу, можно поспешить, удаляя трекер. Вообще, есть риск, что забудешь и статистика отправится.
Upd: пока что с лабом у меня получилось так. left=80. Сделал запрос (IP указан мой в файле) - в ответ приходит только мой IP (т.е. IP настоящего сида не возвращается). Жду 17 минут, меняю на left=40. Новый запрос и возвращается IP настоящего сида.
На линуксе виндовый скрипт тоже работает, если установить php-curl.
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 03-Июн-24 12:24 (спустя 16 часов, ред. 03-Июн-24 12:24)

artenax
В qBitorrent пиры можно не вручную добавлять, а сразу автоматически через webui api Add peers . Если отключить авторизацию, всего ещё один curl запрос.
Да и трекер проще удалить также.
[Профиль]  [ЛС] 

artenax

Стаж: 2 года 3 месяца

Сообщений: 1484


artenax · 03-Июн-24 17:33 (спустя 5 часов)

yandrey0
webui что-то не хочется поднимать. А вы спец по php?
[Профиль]  [ЛС] 

yandrey0

Top Bonus 05* 10TB

Стаж: 17 лет 1 месяц

Сообщений: 575

yandrey0 · 03-Июн-24 17:51 (спустя 17 мин.)

artenax писал(а):
86338456webui что-то не хочется поднимать.
Что там поднимать? галочку в настройках поставить, на потреблении ресурсов и безопасности (если не выставлять в публичную сеть) никак не скажется. Некоторые вообще используют только webui - qbittorrent-nox.
artenax писал(а):
86338456А вы спец по php?
Нет, просто знаком, осталось немного в памяти от давней работы
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error