Bittorrent v2对比及实践相关

Bittorrent v2对比及实践相关

前段时间(9月7日),libtorrent宣布其2.0版本开始支持 BEP 52 The BitTorrent Protocol Specification v2 的相关协议(BitTorrent v2 - libtorrent.org)。之前我在写RidPT的时候便翻过这个定稿于2017年的标准(历史悠久),但当时并没有客户端或Tracker对该标准有实现(较长时间内可能也不会有Track...

Python,PT,PHP,Knowledge 2020-09-20 PM 12898次 11条
扩展FastRoute使其支持Middleware

扩展FastRoute使其支持Middleware

很久之前在写RidPT的时候,我就在考虑使用社区中更为优质的组件来替换原 MixPHP 中自带的一些组件。而路由部分中 symfony/routing 可能是我之前最想尝试的,因为目前RidPT中使用Symfony/HttpFoundation构建了请求和响应组件(甚至有段时间我觉得我在另外构建一个symfony,而且还没别人官方的好,其对swoole异步/协程的支持也均未测试)。然而接触文...

Coding,PHP,Knowledge 2020-05-11 AM 4904次 0条
R酱的资源收纳库(Symfony 5+Vue)

R酱的资源收纳库(Symfony 5+Vue)

网址: https://share.rhilip.info/#/ update 2020.07.20: 因OneDrive于2020年7月初大量杀号,所以两个站点均已关闭。update 2020.08.04: 使用备用的OneDrive域开始恢复,之前的分享只剩下一个账号还活着,其他看情况,能补就补吧。。资源仓库( https://archive.rhilip.info/ )应该是不再开了...

Javascript,PT,PHP 2020-02-23 PM 21079次 28条
NexusPHP 建站优化 (3) 升级NPHP到PHP 7

NexusPHP 建站优化 (3) 升级NPHP到PHP 7

因为NexusPHP较早就停止维护,所以官方源码基本只能停留在PHP5.3-5.6版本使用,无法使用PHP7,然而随着PHP5.x(甚至PHP7.0)已经完全停止维护,势必有必要将NPHP推进到PHP7.x。然而主要阻碍这种推进的原因是因为:Mysql库在PHP7中不存在,必须更换到 Mysqli库。Memcache库在PHP7出现兼容性问题,需要调整连接代码,或更换到 Memcached库...

PT,PHP 2020-02-07 PM 7845次 7条
NexusPHP 建站优化 (2) 替换Bencode库

NexusPHP 建站优化 (2) 替换Bencode库

我曾在 PHP 下 Bencode 库差异及性能对比 一文中,通过对比指出NPHP在解析多文件(>1k)种子时,因为原解析库的低效率问题,导致性能过差的问题,并给出了相关解决方法。但是随着TJUPT代码库变成private状态(示例没了),以及 Rhilip/Bencode 以基础库形式发布在 https://packagist.org/ 上并维护。势必有必要重新写一个commit来说...

PT,PHP 2020-02-06 PM 4228次 3条
NexusPHP 建站优化 (1)自动清理(cleanup)

NexusPHP 建站优化 (1)自动清理(cleanup)

此文主要解决部分基于NPHP的站点在做大之后,因cleanup相关清理程序超时无法正常运行,导致出现用户等级、做种魔力无法正常更新等情况。主要可能的报错和原因为:站点使用Cloudflare作为CDN,因为清理程序运行超过100s,被强制522超时停止运行。站点Nginx设置后端超时时间过短,导致502报错。以下讲解和代码patch均基于本人fork的官方源码 Rhilip/NexusPHP...

PT,PHP,Knowledge 2020-01-21 PM 3529次 0条
PHP解析 ipv6wry.db 数据库

PHP解析 ipv6wry.db 数据库

我可能算是比较关注 ipv6wry.db 这个IPv6数据库的人之一了吧,之前就有写了自动更新脚本 Rhilip/ipv6wry.db ,再早之前在PT-help中也使用了该库。昨天晚上不知道在想些什么,搜索了一圈没见到 PHP 版本解析库,突然就有写一个的想法。Github Source: https://github.com/Rhilip/ipv6wry-phpPackgist: htt...

PHP,Knowledge 2019-09-19 PM 3995次 2条
PHP下Bencode库差异及性能对比

PHP下Bencode库差异及性能对比

如果你有过注意,我曾在最近为国内某一PT站点更换了其Bencode库。究其原因在于,NexusPHP自带的Bencode库解析出来的Array中含有较多的无用元素,且性能较低,在一定程度上拖慢了种子上传过程中的解析速度,此外还占用过多内存。概览本次对比的对象有NexusPHP自带的、本人新写RidPT(但是还没有写完的)所用的Bencode库,以及其他在 https://packagist....

PT,PHP,Knowledge 2019-04-30 PM 7697次 4条
漫谈PT架构(5): 构造一个SPT(Announced部分)

漫谈PT架构(5): 构造一个SPT(Announced部分)

相比于相对简单的Scrape,Announce构造相对麻烦。(嗯,从上篇文章的发出之后,我又尝试了ThinkPHP5、Symfony等架构的测试。经过多次尝试后,决定在某个Swoole的PHP框架上再次开发。之后的文章示意代码依次为准。发出鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽鸽的声音~总代码示例这里贴出的是一个示例的步骤(伪代码),可以看到Tracker的Announce步骤依次如下,对字段的检验...

PT,PHP,Knowledge 2018-12-25 PM 5731次 7条
NexusPHP允许无Tracker种子上传

NexusPHP允许无Tracker种子上传

在某些NexusPHP构架的PT站点上传无tracker地址的种子时会提示目录缺少值,至少要填写一个tracker。长期以来,这个缺陷一直被要求up者在做种时任意填写一个字段使该tracker地址非空。不过经过分析,发现这个只需要改一行代码就行。照例,上NexusPHP的源代码:ZJUT/NexusPHP/takeupload.php#L140 ,是的,只要修改这一行为下列即可~list($...

PT,PHP 2018-11-14 PM 4036次 0条
Pt站点禁用Aria2客户端方法分析

Pt站点禁用Aria2客户端方法分析

为什么Private Tracker需要限制客户端,因为并不是所有的BT客户端都是完全遵守BEP规范的实现(其实常用的ut、tr之流也并不是完全遵守的2333)。所以以NP框架为代表的站点要尽量把用户使用的客户端限制在允许的范围,使得能相对正确的记录用户的做种信息。但是这并不能解决一些能伪造User-Agent以及peer_id_prefix的软件,例如Aria2这样的综合下载软件或者一些流...

PT,PHP,Knowledge 2018-10-01 PM 16706次 12条
同机多NexusPHP站点改造

同机多NexusPHP站点改造

虽然我不知道为什么 @NPCHK 大佬会有这种要求,但既然提了就顺带帮忙解决。Nginx以及数据库都没有什么大的问题,对应着分开就是了。但是在缓存方面需要动点手脚,否则多站点公用一个缓存会出现错乱的问题。NP的Cache方法在 classes\class_cache.php 中,这个class_cache是对PHP的Memcache类的一个扩写。并在function.php中以include...

PT,PHP 2018-08-21 PM 3106次 0条