uTorrent 自动屏蔽迅雷脚本
GitHub: https://github.com/ShenHongFei/utorrent-block-xunlei
方法
屏蔽列表
-XL0012-***
Xunlei/***
7.x.x.x
Xfplay
效果
每隔一段时间,已连接用户中使用迅雷客户端的 IP 将会被封锁
脚本
utorrent=
init: ->
@root_url= 'http://127.0.0.1:10000/gui/'
@cookies= request.jar()
token_html = await request
uri: @root_url + 'token.html'
auth:
user: 'admin'
pass: 'xxxxxx'
jar: @cookies
$ = cheerio.load token_html
@token = $('div').text()
await @get_torrents()
call: ({api='', params, method='GET'}={})->
JSON.parse await request
uri: @root_url + api
method: method
qs:{
token: @token
params...
}
auth:
user: 'admin'
pass: 'xxxxxx'
jar: @cookies
get_torrents: ->
@torrents = (await @call params: list: 1).torrents
@hashes = @torrents.map (x)-> x[0]
get_peers: (hash)->
resp = await @call params:
action: 'getpeers'
hash: hash
resp.peers
get_all_peers: ->
peers = []
for hash in @hashes
peers.append((await @get_peers hash)[1])
for peer in peers
ip: peer[1]
client: peer[5]
block_xunlei: ->
peers = await @get_all_peers()
blocks = peers.filter (x)-> x.client.match /(-XL0012-)|(Xunlei)|(^7\.)|(Xfplay)/i
if blocks.isEmpty()
log 'no xunlei clients detected'
log peers
return
else
log blocks
ipfilter = new File 'C:/Users/shf/AppData/Roaming/uTorrent/ipfilter.dat'
ipfilter.data += (x.ip for x in blocks).join('\n') + '\n'
ipfilter.save()
log 'ipfilter.dat updated'
await @call params:
action: 'setsetting'
s: 'ipfilter.enable'
v: '1'
log 'ipfilter.dat reloaded'
run: ->
await @init()
await @block_xunlei()
@task = setInterval =>
await @block_xunlei()
, 3*60*1000
stop: ->
@task.clearInterval()
日志
未检测到迅雷时
no xunlei clients detected
当前已连接 peers
[ { ip: '180.94.154.163', client: 'µTorrent/3.5.4.0' },
{ ip: '223.140.248.38', client: 'BitComet 1.53' },
{ ip: '101.88.108.19', client: 'µTorrent/2.2.1.0' },
{ ip: '39.161.242.50', client: 'Unknown FD/5.1.0.0' },
{ ip: '171.88.70.72', client: 'Transmission 2.94' },
{ ip: '218.79.69.196', client: '[FAKE] µTorrent/3.0.0.0' },
{ ip: '123.204.251.13', client: 'BitComet 1.51' },
{ ip: '118.150.188.121', client: 'μTorrent 3.5.3' },
{ ip: '118.150.188.121', client: 'μTorrent 3.5.3' },
{ ip: '118.150.188.121', client: 'μTorrent 3.5.3' } ]
[ { ip: '222.164.100.163', client: '7.9.34.4908' } ]
检测到迅雷时
使用迅雷的 peers
[ { ip: '183.25.54.216', client: '-XL0012-溶 S 鑋亾#+4 厓' } ]
reading C:/Users/shf/AppData/Roaming/uTorrent/ipfilter.dat
wrote C:/Users/shf/AppData/Roaming/uTorrent/ipfilter.dat
ipfilter.dat updated
ipfilter.dat reloaded
uTorrent Log
[2018-11-19 16:50:25] Loaded ipfilter.dat (51 entries)
1
zmj1316 2018-11-19 17:32:28 +08:00
这个好,可惜 utorrent 的 web API 上次爆出漏洞,不太敢开了......
|
2
SHF OP @zmj1316 怕危险的话限制来源 IP 为 本机 IP 127.0.0.1 就可以仅本机访问了,uTorrent 设置 > 高级 > 只允许下列 IP 地址 访问。
|
3
kslr 2018-11-19 19:07:35 +08:00 via Android
目前有数据分析吗?迅雷比例是多少
|
4
Vanctol 2018-11-19 19:58:13 +08:00 via iPhone
Nice. 其他下载软件有这个功能吗? 比如 fdm
|
5
SHF OP @kslr 不同的种子迅雷的比例不太一样,国外的种子比较少,国内的 60% 都是吸血雷。你可以随便找个种子下载,看看用户列表就有直观感受了。
|
6
xxhjkl 2018-11-19 20:16:04 +08:00
这么使用啊 这个脚本
|
7
SHF OP @Vanctol FDM 是基于 Aria2 的,我看了看 Aria2 的 repo 里有人体力这个 issue 但是没解决,估计没有这个功能。https://github.com/aria2/aria2/issues/1146
qBittorrent 有一个 Enhanced Edition 也可以自动屏蔽迅雷,但是试了很多次 qBittorrent 比 uTorrent 慢太多了,跑不满带宽。 |
9
yanghong502 2018-11-19 22:02:57 +08:00
……之前在 pt 站的客户端列表看到一个迅雷。
|
10
Wenpo 2018-11-20 01:30:51 +08:00 via Android
屏蔽了又怎样呢
|
11
lovestudykid 2018-11-20 02:03:39 +08:00
迅雷客户端不给 bt 网络上传吗?
|
12
vB4h3r2AS7wOYkY0 2018-11-20 02:18:32 +08:00
另外还有一个 qBittorrent 的也挺好用
https://github.com/c0re100/qBittorrent-Enhanced-Edition/releases |
13
xmtudgzy 2018-11-20 06:53:50 +08:00
就是因为 uTorrent 2.2.1 不能屏蔽渣雷为首的吸血鬼,所以在公网 BT 上不敢用这个客户端 。
大声的问一句:老师,你这个脚本该怎么用? |
14
chih758 2018-11-20 09:18:09 +08:00 via Android
好
|
15
chih758 2018-11-20 09:19:27 +08:00 via Android
好东西,我研究下看能不能移植到 qBittorrent 的 webUI
|
16
Removable 2018-11-20 09:30:16 +08:00
@yanghong502 #9 啊?是怎么通过验证的?
|
17
SHF OP @lovestudykid 是的,吸血雷只从 BT 网络下载资源,然后只在迅雷用户之间内部分享(也许先分享给开了会员的人),破坏了 P2P 网络的公平性。
|
18
SHF OP @MayKiller qBittorrent 比 uTorrent 慢太多了,跑不满带宽,你可以用一个热门的种子比如 ubuntu 镜像的种子试试,我这 qBittorrent 最快只有带宽的 30%,而 utorrent 能到带宽的 80% 以上。
|
20
SHF OP @edsheeran 应该是 tracker 没有把迅雷的 client id 检测出来然后屏蔽掉,反而正常把其它做种的 peers 的 IP 给返回了。
|
21
imn1 2018-11-20 11:14:50 +08:00
这其实是个哲学话题
有两个圈子,BT 和 XL,XL 从 BT 获取资源,但没有反向分享 但不能说 XL 完全没有分享,XL 平台是有向 XL 圈子分享的,否则 BT 无源的老旧资源,XL 也下载不了 所以说,只是两个圈子打架的事 其实我自己也在做类似的行为,我从 BT 下载(限速上传),但却扔到 emule 里面上传(下载极少,上传带宽多两倍) 我这样做是因为 emule 可以一次挂着上千个文件,BT 做不到(或者说机器承受不了),但从 BT 用户角度,我这也是在吸血 这个事情看立场、角度如何吧 @SHF 我 qbt 长期 10+MB/s,不知道你为何会慢 |
22
Cu635 2018-11-20 16:21:10 +08:00
@imn1
胡扯哲学话题。 “ XL 平台是有向 XL 圈子分享的”这就叫吸血。 这就和这件事性质一样:你的朋友管你借钱,借钱完了该还的时候他有钱不还给你,同时他却向他的“朋友们”放贷——就算不收利息他也会赢得他朋友们的名声。如果说这件事你也是认为“不能说他完全没有名声,只是他是有向他那个圈子分享”的,再过来说“哲学话题”。 |
23
imn1 2018-11-20 17:08:40 +08:00
@Cu635
和你说的例子相似又不同,相似是生利,就是 XL 自定的规则盖过了 P2P 圈的共享精神 不同是 XL 也不能完全说无本,能存放更久的资源也需要付出,就看这个本和利是否对称合理了 如果 XL 完全封杀免费用户,那就没得说了 免费用户也是能下到一些久远的内容的,单从这点看,它免费分发的量是大于获取的量的,这点不能否认 如果朋友拿了我的钱,一半放贷,一半资助别人,赚了名声,我什么也没捞着,确实不爽 但如果我那些钱本来就打算资助别人,就要另外看了 到底是痛骂这个朋友,还是睁眼闭眼过去,各自衡量 BT 圈就能保证更多的人分享么?分给谁不是分呢?区别只是分多少,怎么分而已 10 年前问过别人一个问题:婊子捐的钱收不收? 问自己没用,问灾民 精神是否大于物质,理想是否高于现实,说的就是这个哲学问题 今年刚从 XL 退会了,观察后续情况如何吧,至少这个月还下了两个 bt 拖不动的上世纪的咚咚,只是慢点,挂了一周多 |
24
SHF OP @imn1 解决这个问题最好方法是设计一个客户端同时支持这些协议,把所有的 BT, XL, emule 圈子合并在一起,这样整个圈子就扩大了,下载文件的时候从各个来源下载加快速度。
|
25
Cu635 2018-12-06 23:22:13 +08:00
@imn1
你搞差了,不是“ XL 完全封杀免费用户”的问题,而是说这些 bt 下载软件是有客户端标识的,软件会知道跟它连接的其它客户端是什么软件、版本号是多少,浏览器这个标识叫 user-agent,bt 我不清楚叫啥了,这样的话,XL 在技术是可以从所有类型的客户端下载( deluge、utorrent、其它 XL 等),但是只给 XL 的其它客户端上传,这个区分不是免费不免费用户的问题。然后因为迅雷下载快,用户们都选择使用迅雷,等着资源只有 XL 才有而其它的都没有的时候,再来一个免费用户限速之类的限制,这不就是垄断了么。 而且由于技术原因,存放的成本几乎可以忽略不计。 我特意强调“借钱完了该还的时候他有钱不还给你”,这个就是告诉你他故意赖的。 “如果朋友拿了我的钱,一半放贷,一半资助别人,赚了名声,我什么也没捞着,确实不爽”,我的那个例子还有这他当老赖的情节呢…… 而他得名声,你却什么也没得着,还被人老赖连本金都没有拿回来,你说“问自己没用,问灾民”也对,那要是你这个时候家人(或者干脆就你自己)正要动手术需要医疗费救命呢?他仍然赖着,仍然拿着他老赖的钱去当“及时雨”呢? |
27
imn1 2018-12-07 01:42:29 +08:00
@Cu635
我没有搞差,我说的免费用户和你这里说的一样,只是他们是 XL 圈内的免费用户而已 如果 XL 所有用户都要付费(破解那些不计算),才是我前面说的「 XL 完全封杀免费用户」,但它没有这样做,就是说 XL 也是有免费分发的 一个现实状况是:XL 免费分发出去要比我个人多得多,所以我只把它视为一个渠道商而已 如果我的钱本就打算捐出去,例如通过 red cross,rc 收了 10%作为行政费,90%分给其他人 当我需要手术,估计就不存在捐出去这个打算了 而且,捐了给 rc 后的话,我要手术救命,难道还去向 rc 讨回来么?捐赠本来就不求回报的,只要不是骗钱给自己享乐,它获取部分利益(美其名「行政费」),我不介意 我 emule 没有屏蔽什么用户,只要对方是需要的,我不去计较他的本意是什么 P2P 没问题,P2B2P 我也觉得没问题,多了一层中转而已,如果 P2B2C,后面这个 2C 没有免费途径,我才会介意 如果哪天 XL 不给钱不让下,我也会屏蔽它的 其实说到底,我和你看法的区别是,你把 XL 的免费用户没有归入共享圈,我则无视他们头上的 XL 标签,也视为共享圈内有资源需求的人 @SHF 我 bt 下完跑,但挂 emule 就是这个原因,10~20TB 挂 bt 我的机器会死的,emule 就没问题 |
28
SHF OP @imn1 所以说如果客户端能在遇到对方是迅雷用户的时候伪装成迅雷,这样就好了,从技术上说这个也不难实现啊,根据已有的开源的客户端修改一下逻辑挺简单的吧,不知道为什么没有人去开发这个。
|
30
dt743 2018-12-14 09:16:18 +08:00
楼主这么一讲我也注意到了,qb 增强版屏蔽迅雷,同时会误杀。
我就说怎么同个种子,增强版的用户会大量减少 |
31
1265578519 2018-12-14 23:20:38 +08:00
烦死这群 utorrent 吸血鬼了,只下载不上传,特别是老外。
关于迅雷这方面,是完全遵守 BT 网络的,不会出现评论中说的什么只会上传给迅雷相同客户的问题,这种事情自己抓包测试就行,不用跟风造谣。 总结,还是看人,特别是老外,尼玛就是喜欢限速 1KB 上行。 |
32
1265578519 2018-12-14 23:25:23 +08:00
关于各大客户端的速度方面,感兴趣的话可以看看: http://bbs.itzmx.com/thread-88860-1-1.html
具体各位也可以仔细测试下,来探讨下,说实在的 utorrent 基本上没什么存在的必要了,,代码太屎了,要推倒格式化重新用 iocp 模型完全开发一遍才行,这样才能提高性能。 ???发回复还要铜板?吓得我去充了 200 块才发成功这条回复 |
33
maogang39 2018-12-23 16:42:39 +08:00
几乎被 xl 给把上传都给霸占了,
还有两个 xl 在给我上传。2.0.4 可以使用这个吗?真小白还是看不明白怎么使用这个脚本。 [![捕获.JPG]( https://i.loli.net/2018/12/23/5c1f49c0884e4.jpg)]( https://i.loli.net/2018/12/23/5c1f49c0884e4.jpg) |
34
fengyeso 2018-12-24 04:07:19 +08:00
撸了个 python 版的,应该可以跑起来。顺便感谢楼主造福人类
https://github.com/yefengo/utorrent-block-xunlei |
35
SHF OP @xxhjkl @maogang39
v1.0 正式发布: 1. 发布压缩包,解压修改配置后可直接运行。 2. 修改屏蔽逻辑 3. 减少 ipfilter.dat 文件的读写 下载及使用说明见 https://github.com/ShenHongFei/utorrent-block-xunlei 另有 Python 脚本的实现(见 #34 楼),感谢 @fengyeso |
36
Suzutan 2019-02-14 20:52:06 +08:00
|
37
pedoer 2019-10-10 18:04:37 +08:00
请问怎么屏蔽 7.8.9.4550 这种无客户端标记的?
|