小樱 发表于 2025/2/27 20:26

比特彗星tracker种子市场,opentracker fullscrape api接口请求规范,服务器配置文件开关,Bencode解码peer数据

比特彗星tracker种子市场,opentracker fullscrape api接口请求规范,服务器配置文件开关,Bencode解码peer数据

bt协议官网介绍scrape:http://www.bittorrent.org/beps/bep_0048.html

通过api请求fullscrape时候,不需要携带info_hash字段,可以获取tracker服务器中所有种子hash,使用Bencode解码响应数据来获取明文
例:http://tracker1.itzmx.com:8080/scrape

查询某个hash的"种子/用户"数时候,则需要携带info_hash,此时你的请求scrape信息不会记录到peer当中,服务器也不会返回peer的ip地址信息,只获取种子人数,一般用于对接BT发布资源站的网站页面显示当前种子情况
例:http://tracker1.itzmx.com:8080/scrape?info_hash=%aa%29U%e0%eb%3e%ddW%04%ea%8f%c0%85%1f%aa%91.bx%ae


请求规范
客户端必须支持发送请求标头accept-encoding: gzip, br, zstd
要求爬取api至少支持gzip,这个接口产生的文件一般会比较大,所以需要压缩传输

用户代理
发送请求标头表明身份,例子可自定义不需要照抄
user-agent: BitComet/2.11.11.12

支持chunked
fullscrape通过分块传输发送经过压缩的数据给客户端

间隔
避免占用服务器宽带与大量内存,每次请求间隔建议不低于2小时,不做硬性要求,但是最小值不得低于5分钟


常用问答
通过api接口获取到这份列表怎么知道哪个是刚入库最新发布的种子?
等于说要设计一套分析系统和数据库记录,现有tracker程序本身的api只能获取当前服务器中全部种子列表,而不知道哪个是新的,需要判断这个hash是否是以前出现过的,肯定是要个外置数据库来实现记录出现时间之类,tracker服务器本身都是内存调用操作,没有涉及到数据库,比特彗星种子市场就是个.db数据库 通过api接口获取tracker服务器的所有种子信息并且记录到库里,这些都是在内存中不可见的,所以没办法直接取出来,只能通过访问日志实时分析,或者重新设计tracker服务端
本身tracker服务端的api接口只能获取少数运行状况信息,和全部的种子列表(可通过配置文件是否启用允许访问此api),api接口这个方案是最好的,只需要服务端配置文件打开就可以了,比特彗星也是用的这个实现,这个可以配置文件开,就是会多占用点服务器内存,对性能来说影响不大,群里一些其他人的tracker服务器也开了这个

我是tracker服务器管理员,如何启用fullscrape?
Makefile文件,打开选项,清理二进制文件并且重新编译,需要安装运行库yum -y install libzstd-devel
include Makefile.gzip
include Makefile.zstd
FEATURES+=-DWANT_FULLSCRAPE

同时还支持top100 api,请求方式参考
https://bbs.itzmx.com/thread-105251-1-1.html

页: [1]
查看完整版本: 比特彗星tracker种子市场,opentracker fullscrape api接口请求规范,服务器配置文件开关,Bencode解码peer数据