-
-
[原创]基于DHT网络的BT磁力链蜘蛛源码
-
发表于: 2020-8-3 01:00 7105
-
几年前研究大文件的下载分发,注意到了libtorrent这个非常完善的BT下载库,因此对BT相关协议也有了粗浅的了解。于是我用这个库提供的接口,实现了一个DHT的蜘蛛。
我把这个蜘蛛放到美国的不限制UDP和BT协议的虚拟机上,每天大概可以采集3000-9000个BT种子的相关信息。
之所以选择做BT蜘蛛,是因为当时淘宝上出售的各种DHT蜘蛛,都是带网页病毒的,会感染HTML文件,所以就干脆自己动手了,更安全些。
大概介绍一下原理:
BT种子被制作出来之后,会具有一个HASH值,这个HASH值,就可以对应出一个磁力链链接,比如:magnet:?xt=urn:btih:F5615DFB80AC995787C1B2219A75DF7805278DEA(这个F5615DFB80AC995787C1B2219A75DF7805278DEA就是HASH),只要文件内容相同,那么HASH就是固定的。
BT软件启动时,一般会自动连接到一个DHT网络,这是一个分布式的UDP网络,每台机器维护着若干跟自己相邻的其他BT下载者的IP(以下简称节点)。
当BT软件拿到磁力链HASH之后,就会向周围的节点发布消息,询问“你有这个HASH的文件吗?”如果被询问的节点没有这个文件,那么这些节点就会再向外层继续广播询问,直到找到这个种子为止(为避免广播风暴,这个广播的最大层级会有限制)
当找到有一个节点X有这个种子后,当前机器的BT软件就会与节点X连接,请求节点X把种子发过来,磁力链转种子的工作至此完成。
当其他节点进行磁力链下载时,也会把HASH广播给你,这样你拿到了HASH,也就能顺手把这个HASH转化为种子。
这样,全网流行的BT种子,基本你都可以拿到了。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2020-8-3 01:02
被Jobcrazy编辑
,原因:
赞赏记录
参与人
雪币
留言
时间
一笑人间万事
为你点赞~
2022-7-30 12:41
拍拖
为你点赞~
2020-8-4 09:02
trustyboy
为你点赞~
2020-8-3 19:02
赞赏
他的文章
- [原创]一个AndroidManifest.xml解析工具源码 4156
- [原创]程序员是怎么润到加拿大的 25043
- [原创]基于DHT网络的BT磁力链蜘蛛源码 7106
- [原创]lib文件格式分析,以及从lib文件提取obj的思路和源码 21400
- [原创]一个自动从lib文件提取IDA sig的工具 11907
看原图
赞赏
雪币:
留言: