2.08测试版

目前彗星内置的基于流量的反吸血
在下载阶段基本上是没什么问题的

但在做种阶段 没有也不需要下载量
基于上传量的反吸血自然是不起作用

虽然而客户端名称和 peerID 可以被轻松伪造
但使用其进行屏蔽是目前最简单 最具有可行性的方法
应该将其进一步发展

事实上我的设想是允许从外部文件中读取peerID 客户端名称 以及 端口号
同时添加的一个定时重载选项

当然要是能像更新tracker服务器列表那样直接从网络上更新就更好了
如果能实现之前提出的热重载配置 那这些就都不是问题了

至于伪装和滥用正常客户端的情况 只能依靠IP和端口进行屏蔽
毕竟 在BT传输中许多的信息依靠对方汇报
比如 peerID 客户端名称 下载进度 等

可靠信息其实只有 对方的上传量(校验后的)以及IP和端口

也许可以尝试主动防御即对对方发起一些主动的探测或者扫描
但这很容易被视为攻击行为

就目前被动防御而言IP黑名单仍然是十分有效

我的建议是 封锁所有国内的IDC IP 以及专线IP

原来的计划是通过免费的IP数据库
确定这些IP地址并加以封禁

但大部分免费的IP数据库似乎不包含 网络类型这一项
需要使用付费数据库才行

现在可能只能依靠人工观察和记录
当然这针对的是滥用正常客户的刷流的用户
至于使用吸血客户端的普通用户 简单的peerID 和客户端名称屏蔽就足够了


算上版本号的话还是可以的 最好能够 引入通配符 这样就不用担心它的版本号发生变化了
正则表达式确实有些复杂了通配符应该够用了




464436213056526375764932444656475361734b
FD6!0VRcuvI2DFVGSasK

4644364673635f586e364b53616c2d2821535975
FD6Fsc_Xn6KSal-(!SYu

比如使用 * 或者 ? 作为通配符
星号(*)匹配任意数量(包括零个)的任意字符
问号(?)匹配单个任意字符
像这样:

针对peerID

FD????
FD*

针对 客户名称

FDM/??
FDM*

事实上 Tixati 已经在使用这样的通配符了