Структура ответа от анонсера

Wertos

Заблокирован
#1
Код:
HTTP/1.0 200 OK d8:completei9e10:incompletei129e8:intervali1800e12:min intervali1800e5:peers300:[рg2PYьg˜бІU@_bot[Кт%e№І."аыOµґ(-1ФљИНВН..ЖЮWVYф†§аYі]jЬ_SЁg¤Н2YdeвЁќd%^я9ыhЬХгзЭ©ЯmҐdыИХYЅЄZзN%ЪwЇИ\'dО|‘°n^‹k°%‹kјtЎ7вЈXZ-™ИХP9еF–А°ЧюlУѓ+ЯбЮю‘Л€ІЧc^ЬmAЏz©XЃб7щ[бб=Zw°u–¬э.’ЖЇbDEu®ЯБHЉЃЂ@Ф^Н6РЗ.ЃмАZѕйџб°p,1Ьmлєк<.0gqZ°в˜лЫBјў§2Ь"VУШІыnб]Qр&‹¦5б3˜ЂJйcҐ€mюRbб%‘Ю†с‡e
Собственно получаю такую байду, как привести к человеческому виду ?
 

Nightmare

Разработчик
#2
Какой аннонсер? Вообще каждый из этих параметров передается гетом. То есть использовать для разбора ответа от клиента $_GET['peers'] и тп для каждого параметра, причем параметры peers пакуются в бинарную строку, можно для разбора использовать unpack(). Это говорит о том, что клиент принимает данные в компактном виде
 

Wertos

Заблокирован
#3
Nightmare, это я отправил анонсеру данные через $_GET, как клиент... Это именно ответ от анонсера мне(т.е. клиенту)
 

Nightmare

Разработчик
#4
Ну аннонсер отвечает в компактном виде, где ip и порт пиров запакованы в бинарную строку, нужно ее распаковать на стороне клиента. Как я понимаю что-то вроде своего клиента?
Ну или самый простой вариант $tr_cfg['compact_mode'] = False
 

Wertos

Заблокирован
#5
Nightmare, типа клиента, но не совсем...
С unpack() всё понятно... мне нужен читаемый вид. IP, порты, сиды/личеры и т.д. Я просто думал какой нибудь готовый класс есть для этого...
 

Nightmare

Разработчик
#6
Ну, количество сидов это complite, личеров - incomplite. весь ответ аннонсера отдается в bencode формате
 

Wertos

Заблокирован
#7
Это я тоже декодировал, в data['peers'] = ІЊ–фRс.yГЌИч.§hO¬sXДhИХwI/ьт®[fІ7‚_…г3V$.ЃмАВ,)чЖEu®ЯБHБ!(_ќЇш¬°Чщ1Уѓ]|*ґQв^н…VL
lФ№1-^F(1±Ј_%н1зmVІуq_5б3˜ў№Gћы°ГkOсё\т Ь:јф(ј:_TР”\ЉБлIБ›пЉЃЂ@ФА‰Q‘.µќ‡аВjalЄцOµ№ёбoѓА°ЈмmўY*7«O§8~У^’77°ВЊ3ћДP9еF–АSцљ#n±YЅЄZз.“єуЉ€Ш:3;6к_ґ'очZ_ѕv(б°mє™цЏ.ьr6ИХФљИНВНm©·кЁ!ј Ћ+–%n+·•И

вот такая фигня... как я понял это и есть пиры... вот их и надо в человеческий вид привести
 

Wertos

Заблокирован
#9
Да так и есть ip и порт пиров. Это и есть компактный ответ который пакуется в бинарную строку функцией pack()
PHP:
unpack('Nn',$data['peers'])
ОО ! спс ! уже что то читаемое... осталось последне ))
Код:
Array ( [1] => 1599393940 [2] => 1552559866 [3] => 2050877107 [4] => 788296246 [5] => -925541555 [6] => 2094893931 [7] => 774309643 [8] => -282763489 [9] => 41073874 [10] => 1606317608 [11] => 450998487 [12] => -452078717 [13] => 1541529917 [14] => 1517757806 [15] => 733451720 [16] => 771763910 [17] => -564700205 [18] => 2114119751 [19] => 1509596702 [20] => 1964880534 [21] => 1413493392 [22] => 1843476243 [23] => -353321861 [24] => -132034917 [25] => 98830529 [26] => -1525340724 [27] => -1756545507 [28] => -705615443 [29] => 1196208689 [30] => 1401318226 [31] => 1509713816 [32] => -508399078 [33] => -1841811979 [34] => 1582247102 [35] => -1885252926 [36] => -1181962447 [37] => 1588760157 [38] => -2044046127 [39] => 1462631192 [40] => -1334312845 [41] => -992653392 [42] => 1989532286 [43] => -1335165247 [44] => 445765031 [45] => -541522468 [46] => 1605642222 [47] => -145084769 [48] => -1556047042 [49] => 1295218225 [50] => -1099148060 [51] => -1821631011 [52] => 1578960109 [53] => -2057953316 [54] => -1429446717 [55] => -667274437 [56] => 921353343 [57] => 282401505 [58] => 1571531863 [59] => -499687757 [60] => 9097061 [61] => 39834373 [62] => -1955867335 [63] => 562580757 [64] => 1571967827 [65] => 2029477737 [66] => 886357494 [67] => -1341591880 [68] => -925509262 [69] => -327119543 [70] => 1312600828 [71] => -516160098 [72] => 1658103913 [73] => 1540683911 [74] => -374001926 [75] => 488402206 )
после unpack('N*',$data['peers']) получил данный массив... сие есть что ? :)
 

Wertos

Заблокирован
#10
Такс... получил список IP
$rowset = unpack('N*',$data['peers']);
foreach ($rowset as $peer)
{
$peers[] = long2ip(encode_ip($peer));
}
print_r($peers);
Но вот портами там не пахнет вообще...
 
Сверху