吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7243|回复: 7
收起左侧

[C&C++ 转载] 基于DHT网络的BT磁力链蜘蛛源码

  [复制链接]
Jobcrazy 发表于 2020-8-3 12:57
几年前研究大文件的下载分发,注意到了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种子,基本你都可以拿到了。

实在看不懂原理的可以先看看这个视频,大概了解下BT工作机制:https://www.bilibili.com/video/av57748098/

我把BT磁力链蜘蛛源码传到了GitHub,如果觉得对你有用,请不吝赐予我一个星星。
源码地址:https://github.com/Jobcrazy/BitTorrent-DHT-Spider
源码是基于Linux的,相关编译环境和方法,也有比较详细的说明。

简单讲讲main函数的代码:
初始化libtorrent,并连接到了DHT网络,之后添加了一个虚假的磁力链任务,促使libtorrent去跟其他的DHT节点联系,来获取其他节点正在下载的HASH信息;
监听DHT通知,当收到新的HASH信息时,把HASH添加成BT任务,向其他节点请求种子信息;
监听DHT通知,当收到种子信息时,把种子存到mysql数据库里,数据库的结构也在github里了。

当数据库里有了数据,你需要的是一个支持中文全文搜索的引擎,来打造一个磁力链搜索引擎,这时候你可以通过coreseek这个开源软件来解决。coreseek的教程网上比较好搜到,这里我就不重复了。

免费评分

参与人数 6吾爱币 +8 热心值 +6 收起 理由
河间小驴 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
古月不傲 + 1 + 1 谢谢@Thanks!
苏浩 + 1 + 1 热心回复!
JuncoJet + 3 + 1 骚气,但好奇你怎么放美国的
admanda + 1 + 1 谢谢@Thanks!
砂砾酱 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fu12530 发表于 2020-8-3 13:46
好东西必须支持!
jdjx 发表于 2020-8-3 14:06
 楼主| Jobcrazy 发表于 2020-8-3 14:09
回JuncoJet:国内的VPS普遍会限制BT协议,找个专卖美国VPS的就行
angelkiss 发表于 2021-2-1 20:07
github上面的项目不完整,编译提示缺少mysql.h
小胖兴 发表于 2021-2-28 14:27
厉害 ,跟着学习
 楼主| Jobcrazy 发表于 2021-5-26 12:18
angelkiss 发表于 2021-2-1 20:07
github上面的项目不完整,编译提示缺少mysql.h

这是mysql的头文件,请自行下载带sdk的mysql
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表