是否有任何bittorrent客户端或(Java | Python | Ruby | Perl)库可以像wget或curl一样使用?
我想简单地用作脚本中的一个步骤,就像你使用wget一样.
编辑:对不起,我应该提到我正在使用Ubuntu.
我试图从torrent跟踪器获取peer-list:IP地址列表
与此处的问题类似:如何从torrent跟踪器响应中获取对等列表
我写的代码,解码使用Python torrent文件bencode位种子库 我写的代码下面这段代码在这里凑洪流跟踪.
至少对于像mininova tracker这样的http请求,我得到了特定info_hash的以下输出
{'files': {'\xbf\xff&\xcdY\x05\x9b\xb2C2j\x83\xf5F_\x9bg\x9d\xe2G': {'downloaded': 25416, 'complete': 12, 'incomplete': 0}}}
Run Code Online (Sandbox Code Playgroud)
我没有看到任何其他的按键了BitTorrent的文件,这里的规范.(比如tracker_id,min_interval,peer ...等)
我如何获得同行列表?
我正在使用BEncoded PHP Library来解码来自Bittorrent跟踪器的bencoded响应.
Tracker的回应是:
d5:filesd20:¼€™rÄ2ÞÊþVA .]á^¦d8:completei285e10:downloadedi22911e10:incompletei9eeee
Run Code Online (Sandbox Code Playgroud)
使用以下代码解码后:
require 'bencoded.php';
$be = new BEncoded;
//Response saved in scrape.txt
$data =file_get_contents('scrape.txt');
print_r($be->Decode($data));
Run Code Online (Sandbox Code Playgroud)
输出是:
Array ( [files] => Array ( [¼€™rÄ2ÞÊþVA .]á^¦] => Array ( [complete] => 285 [downloaded] => 22911 [incomplete] => 9 [isDct] => 1 ) [isDct] => 1 ) [isDct] => 1 )
Run Code Online (Sandbox Code Playgroud)
我的问题 我在上面的输出中的问题是如何解码输出中的那些神秘字母.
我试图访问Torrent DHT网络,我很难搞清楚如何访问DHT中的"入口"节点.
描述了几个标准入口节点可以使用在端口6881(UDP)上运行的router.bittorrent.com和router.utorrent.com.AND http://www.bittorrent.org/beps/bep_0005.html描述了如何与DHT服务器交互的协议.
但是,如果我发送一个简单的UDP消息到router.utorrent.com:6881,我怎么知道哪些端口消息将被发回给我以回应我的请求?我试着在发送到6881的同一端口上收听消息,但我什么都没收到.
这些入口点是限于他们自己的客户端(uTorrent)还是任何第三方客户端都可以使用他们的"路由器"?
我正在创建一个创建客户端的想法,该客户端将使用今天在torrent下载客户端(如uTorrrent或Vuze)中使用的torrent协议来创建:
客户端软件:
可选:
我想包括边缘文件共享.如果您在备份存储中共享非加密文件,并且更喜欢将其端口80打开以进行公共HTTP共享的客户端.但这很有诱惑力,因为我很难想出一个简单的方案,访问者会选择最近的备份客户端.
包含允许使用torrent协议在两个系统之间进行文件传输(类似于FTP和GUI)样式的文件管理器.
我正在考虑将其创建为服务API项目(有点像http://www.elasticsearch.org),它可以与任何容器集成,例如tomcat和spring,或者只是简单的Swing.
这将是P2P开源项目.由于我对我对torrent协议的理解不完全有信心,因此问题是:
java
为这个项目招募开发人员)如果这是发布此错误的位置,请将其移至更合适的网站.
什么时候可以通过P2P与WebRTC交换任何类型的数据?
我正在考虑制作一个P2P bittorrent软件,而不是流式传输音频/视频.
谢谢
我正在考虑在ruby中编写自定义的torrent客户端.我找到了以下的库(这些库很老了,如马特指出的那样).但是我想知道我可能错过的任何图书馆,我很想听听社区对以下图书馆的看法.在利弊中......
请注意,我希望修改图书馆的一些内部工作以满足我的需要.因此,纯粹的红宝石库将是理想的.
注意:我在stackoverflow中搜索了这个问题(或类似的东西).提出的唯一问题很久以前就提出过,并没有任何正确的答案.因此这个新问题.
谢谢你的时间!
我正在寻找在Ruby中构建一个bittorrent客户端(尽管语言在这里并不重要).
我读了一个BEP规范,它说查询/announce
(没有DHT支持)跟踪器会给出一个当前为给定信息哈希连接的对等列表.
检查一下.我创建了一个torrent文件,我发现跟踪器返回我的机器的IP以及端口(我确认是我的机器上的Bittorrent客户端的运行端口,即Utorrent)
但是问题是Peers信息返回了我的ISP的IP即111.125.209.41
(面向IP的公众,因为我在NAT后面).
现在我无法通过我的ISP 连接(通过TCP)到我的机器上运行的进程.
任何人都可以建议bitorrent如何在这方面工作,我该怎么做才能解决这个问题.
它可能会通过UDP Bittorrent使用UDP保持打孔不确定TCP上发生了什么.
我的理解是 IPFS 和 Bittorrent Mainline DHT 建立在分布式哈希表 (Kademlia) 之上。他们使用文件哈希作为 Kademlia 密钥来查找可能拥有此文件的对等点列表。
1- 我不明白的是,这是否都是分散的,谁从不再托管文件内容的 DHT 对等方中删除?
2- 什么阻止某人在 DHT 中免费存储大量数据?
3- 什么防止某人通过为流行文件添加大量无效对等点来破坏网络。
4- 什么阻止坏人加入 DHT 环而不遵循路由协议,从而阻止发现消息到达正确的节点。