标签: bittorrent

如何将 Bit Torrent 信息哈希值从 Base 32 转换为 Base 16

我有一个 Base32 信息哈希。例如IXE2K3JMCPUZWTW3YQZZOIB5XD6KZIEQ,我需要将其转换为 base16。

我怎样才能用 PHP 做到这一点?

我的代码如下所示:

$hash32=strtolower($hash32);
echo $hash32; // shows - IXE2K3JMCPUZWTW3YQZZOIB5XD6KZIEQ
$hash32=sha1($hash32);
$hash16=base_convert($hash32, 32, 16);
echo "</br>";
echo $hash16 // shows - 3ee5e7325a282c56fe2011125e0492f6ffbcd467
Run Code Online (Sandbox Code Playgroud)

在我的代码中,基于 16 的信息哈希无效。

有效的信息哈希是45C9A56D2C13E99B4EDBC43397203DB8FCACA090

如何获得有效的信息哈希?

谢谢

php bittorrent info-hash

3
推荐指数
1
解决办法
1483
查看次数

libtorrent 内置跟踪器

libtorrent 是否提供内置跟踪器?我正在查看 API 文档和示例,但在这些行中找不到任何内容。

其他库(如 BitTorando、Snark 等)也公开了跟踪器。

任何人对此有任何想法,或者是否有任何代码可以帮助我用 libtorrent 本身启动跟踪器。

c++ bittorrent http tracker libtorrent

3
推荐指数
1
解决办法
1542
查看次数

从torrent集合中的单个文件生成torrent/magnet链接

我想知道是否有可能,拥有一个torrent集合(IE包含多个文件的torrent)来提取单个文件,生成一个几乎全新的torrent /磁力链接,只下载该单个文件但使用相同的来源(宣布等)而不是下载整个洪流,然后选择下载或不下载.

谢谢你的任何提示.

bittorrent metadata magnet-uri

3
推荐指数
1
解决办法
3651
查看次数

node.js 中的 UDP 跟踪器抓取意外返回零

我正在尝试使用BitTorrent UDP 跟踪器协议从公共 UDP 跟踪器(例如 tracker.publicbt.com 或 tracker.openbittorrent.com)执行 UDP 抓取。我的应用程序向跟踪器发送一个 connection_id 请求,并使用该 ID 执行抓取。抓取响应从跟踪器返回,没有错误表明数据包格式错误,但无论我使用什么 info_hash,我都会返回“0”作为播种者、吸血者和完成者的数量。

我已经彻底检查了数据包的大小是否正确,info_hash 是否以正确的偏移量开始,以及数据是否全部正确。据我所知,创建和发送数据包没有问题。这个问题几天来一直没有得到解答,所以我更新并编辑了下面的代码示例,希望有人能提供帮助。

我已将 info_hash 硬编码到以下示例中。在命令行上运行时,此代码应连接到跟踪器,获取 connection_id,然后在 Ubuntu 种子 info_hash 上执行抓取,将各种信息输出到控制台。

connection_id 被分成 2 部分,因为它是一个 64 位整数。

var dgram = require('dgram'),
    server = dgram.createSocket("udp4"),
    connectionIdHigh = 0x417,
    connectionIdLow = 0x27101980,
    交易 ID,
    行动,
    trackerHost = "tracker.publicbt.com",
    跟踪端口 = 80,
    infoHash = "",
    ACTION_CONNECT = 0,
    ACTION_ANNOUNCE = 1,
    ACTION_SCRAPE = 2,
    ACTION_ERROR = 3,
    sendPacket = 函数(缓冲区,主机,端口){
        “严格使用”;
        server.send(buf, 0, buf.length, port, host, function(err, …

javascript bittorrent udp node.js

3
推荐指数
1
解决办法
811
查看次数

BitTorrent 会验证文件的完整性吗?

当我下载时,说一个 ISO 映像,使用 torrent;我还应该验证文件的完整性(例如,通过计算 sha256 哈希),还是在下载时自动完成?

checksum bittorrent

3
推荐指数
1
解决办法
8362
查看次数

向 Ubuntu 跟踪器发送 Bittorrent HTTP 请求

我从这里下载了 ubuntu 17.10 的 torrent 文件:https : //www.ubuntu.com/download/alternative-downloads

这是里面的内容:

TorrentInfo{Created By: null
Main tracker: http://torrent.ubuntu.com:6969/announce
Comment: Ubuntu CD releases.ubuntu.com
Info_hash: f07e0b0584745b7bcb35e98097488d34e68623d0
Name: ubuntu-17.10.1-desktop-amd64.iso
Piece Length: 524288
Pieces: 2866
Total Size: 1502576640
Is Single File Torrent: true
File List: 
Tracker List: 
http://torrent.ubuntu.com:6969/announce
http://ipv6.torrent.ubuntu.com:6969/announce
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

我发送:(仅洪流信息哈希)

http://torrent.ubuntu.com:6969/announce?info_hash=%f0%7e%0b%05%84%74%5b%7b%cb%35%e9%80%97%48%8d%34%e6 %86%23%d0

并收到:

你寄给我垃圾 - id 不是 20

我发送了:(种子信息哈希和我的对等 ID)

http://torrent.ubuntu.com:6969/announce?info_hash=%f0%7e%0b%05%84%74%5b%7b%cb%35%e9%80%97%48%8d%34%e6 %86%23%d0&peer_id=%2D%41%5A%35%37%35%30%2D%54%70%6B%58%74%74%5A%4C%66%70%53%48

并收到:

你给我发了垃圾 - 基数为 10 的 long() 无效文字:''


我错过了什么?该规范没有指定任何示例。

规格:

https://wiki.theory.org/index.php/BitTorrentSpecification#Tracker_HTTP.2FHTTPS_Protocol

bittorrent http http-get

3
推荐指数
1
解决办法
436
查看次数

是否存在可证明的最佳种子(和单个文件)块(片)大小?

BitTorrent协议不指定块(块)大小。这是留给用户的。(我见过相同内容的不同 torrent 有 3 个或更多不同的选择。)

\n

我正在考虑提交BitTorrent 增强提案,该提案需要为整个 torrent 以及单个文件(其中BTv2 (BEP 52))强制指定特定的块大小 \xe2\x80\x94指定 bs=16KiB)强制指定特定的块大小 \xe2\x80\x94 。

\n

我发现唯一接近的是 rsync 块大小算法Tridgell & Mackerras 技术论文中的 rsync 块大小算法中的 rsync 块大小算法。它们的 bs=300-1100 B(# 字节不是 2 的幂)。

\n

然而,Torrent通常 使用bs=64kB\xe2\x80\x9316MB(# bytes 是 2 的幂,比 rsync 大得多)(对于 BTv2,文件使用 16KiB)。

\n

指定的块大小不需要是常量。当然,它可能是事物散列大小的函数(就像 rsync 中的那样)。它也可以是文件类型的函数;例如,可能有一些块大小更适合使部分视频/存档/等文件更可用。

\n

另请参阅BitTorrent 作为块对齐文件系统的分析

\n

所以\xe2\x80\xa6

\n
    \n
  1. 种子文件、通用文件或特定文件类型的部分用途的最佳块大小是多少?
  2. \n
  3. BEP 52 中的 16KiB bs 从哪里来?
  4. \n
\n

rsync bittorrent file-transfer

3
推荐指数
1
解决办法
3493
查看次数

为什么bittorrent不是更广泛?

我想这个问题是一个主题变体,但不同.

Torrent永远不会取代HTTP,甚至FTP下载选项.这就是说,为什么在更多网站上这些选项旁边没有torrent链接?

我正在想象一个网络系统,下载的文件可以通过HTTP下载,比如说http://example.com/downloads/files/myFile.tar.bz2,种子可以廉价自动生成并存储/downloads/torrents/myFile.tar.bz2.torrent,跟踪器可能是/downloads/tracker/.

跟踪器是一个明确定义的问题,并且实现起来并不难以置信,并且已经存在许多替代方案.我想在这里定制一个可以做到这一点并不困难.

自动生成的torrent文件可以包含普通的HTTP服务器作为永久种子,大多数(如果不是全部)主要的torrent客户端都很好地支持这样做的扩展,并且不需要在服务器端重新配置或使用特殊的东西(它使用库存标准HTTP范围标题).

就个人而言,如果我设置这样一个系统,我会将/downloads/files/目录速度限制在合理的范围内,比如说40-50kb/s,具体取决于你究竟要服务的内容.

这样的文件传送系统是否存在?你是否会使用它:对你的个人,公司或其他网站?

bittorrent http

2
推荐指数
1
解决办法
913
查看次数

C++中的BitTorrent Peer Wire消息

我正在使用C++开发一个torrent客户端.我无法理解与同行的消息结构.如何使用C++创建简单的握手消息,如何读取响应?问题是我必须发送的数据的结构,然后是我必须阅读的结构.我想向种子发送一个握手消息,发送一个BlockBuf示例.我如何创建BlockBuf的内容?问题是我必须用于消息而不是对等连接的结构...... :(

c++ p2p bittorrent

2
推荐指数
1
解决办法
1293
查看次数

使用libtorrent下载特定的部分

嗯,我正在一个bittorent客户端上,我试图通过下载特定的一块,并从中提取图像生成的视频文件的缩略图,但我一直没能想出一个办法这样做.谢谢

c++ p2p bittorrent libtorrent

2
推荐指数
1
解决办法
1008
查看次数