Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Расшифровка ответа торрент трекера (https://javascript.ru/forum/node-js-io-js/67278-rasshifrovka-otveta-torrent-trekera.html)

mazahist 07.02.2017 17:30

Расшифровка ответа торрент трекера
 
В ответ на мой запрос торрент трекер возвращает:
Код:

d8:intervali3268e12:min intervali3268e5:peers180:R�L�JO��(�G_����g�/��]P��T���̄��nN{'
%n� q�M����M���^�υ`u�]�<u1�,�xm�� �[L,$��]L�79�h.��1��� 9G�^m���� >�#[Ze�j�ͼ�e

Как мне объяснили:
ЦИТАТА: после "peers180:" просто идет дофига байт. Это пары состоящие из ip-адреса + порта.
ip(4 байта)+порт(2 байта) = 6 байт - занимает каждая пара. а число после peers - это количество последующих байт с этими парами. например, в твоем случае 180=6*30, значит дальше 30 пар


Как достать эти каждые пары ip/порт???
Функция callback для http.request:
function (response) {
	var str = "";
	//response.setEncoding('utf8');
	response.on('data', function (chunk) { str += chunk; });
	response.on('end', function () {
		//var peers = str.slice(str.search("peers"));
		var peerStr = str.slice(str.search("peers") + 5);
		var numPeerNum = str.search(":") + 1;
		var numPeers = peerStr.slice(0, numPeerNum);
		var peerCount = numPeers / 6;
		var peersStr = peerStr.slice(numPeerNum + 1);
		console.log(str);
	});
}


Часовой пояс GMT +3, время: 08:17.