[搜片神器]直接从DHT网络下载BT种子的方法

article/2025/11/8 10:35:41

转自:http://www.cnblogs.com/miao31/p/3332819.html

 

DHT抓取程序开源地址:https://github.com/h31h31/H31DHTDEMO

数据处理程序开源地址:https://github.com/h31h31/H31DHTMgr

DHT系列文章:

1.[搜片神器] 之P2P中DHT网络爬虫原理

2.[搜片神器]之DHT网络爬虫的代码实现方法

3.[搜片神器]之DHT网络爬虫的C++程序初步开源

--------------------------------------------------------------------------------------------------------------------

看懂此文章需要提前看明白上面的系列文章,还需要你有TCP网络编程和bencode编码方法基础上,如果都看不明白,可以到娱乐区http://h31bt.com 去看看,休息下...

 

在介绍了这么多期文章后,最后介绍BT网络里面一个比较重要种子下载协议,方便大家知道如何从DHT网络直接下载种子的问题.

先说下我们目前下载电影等文件是如何下载的,比如我们有个BT种子,就可以去下载对应的文件,但如果我们只有个文件名字,如何去找BT种子呢?

首先我们可以去 http://h31bt.com 去通过搜索得到磁连接,然后就由此字符串去下载对应的种子文件和电影等信息,但如果没有网站让你下载种子,我们又当如何去搜索这个种子呢?

目前我们下载BT种子有两种方式:                                                                           

  1. 通过HTTP直接从WEB服务器上下载,这种直接方便,比如从迅雷服务器上下载种子,
  2. 再就是通过BT软件从网络里面去获取BT网络里面专门有个下载种子的协议文件,只能下载种子,然后种子下载好后就可以交给BT软件来下载数据了.

如何从DHT网络下载种子,必须先看两个协议文章:

http://www.bittorrent.org/beps/bep_0009.html

http://www.bittorrent.org/beps/bep_0010.html

这里面有介绍,但还是需要说明一下如何操作的流程方便大家更好的理解.

 我们的代码流程必须还是基于 DHT抓取程序开源地址:https://github.com/h31h31/H31DHTDEMO 之上,因为是从DHT网络里面获取数据,

需要我们在此之上操作后续流程.

之前的DHT有SEARCH的相关代码来搜索这个HASH对应的哪些IP在提供下载.

复制代码
复制代码
        /* This is how you trigger a search for a torrent hash.  If port (the second argument) is non-zero, it also performs an announce.Since peers expire announced data after 30 minutes, it's a good idea to reannounce every 28 minutes or so. */if(searching) {//m_dht.dht_random_bytes((void*)hashList[2],20);if(m_soListen >= 0)m_dht.dht_search(hashList[2], 0, AF_INET, DHT_callback, this);if(s6 >= 0)m_dht.dht_search(hashList[2], 0, AF_INET6, DHT_callback, this);searching = 0;}
复制代码
复制代码

搜索到对方返回的IP信息和端口号后,大家可以分析dht.c里面的函数代码dht_periodic(const void *buf, size_t buflen,const struct sockaddr *fromAddr, int fromlen,time_t *tosleep,dht_callback *callback, void *closure)函数里面的ANNOUNCE_PEER返回请求里面带有对方表明自己此BT种子对应的认证码peerid.

复制代码
复制代码
dht_periodic(const void *buf, size_t buflen,const struct sockaddr *fromAddr, int fromlen,time_t *tosleep,dht_callback *callback, void *closure)
函数里面的ANNOUNCE_PEERcase ANNOUNCE_PEER:_dout("Announce peer!From IP:%s:%d\n",inet_ntoa(tempip->sin_addr),tempip->sin_port);new_node(id, fromAddr, fromlen, 1);if(id_cmp(info_hash, zeroes) == 0) {_dout("Announce_peer with no info_hash.\n");send_error(fromAddr, fromlen, tid, tid_len,203, "Announce_peer with no info_hash");break;}if(!token_match(token, token_len, fromAddr)) {_dout("Incorrect token for announce_peer.\n");send_error(fromAddr, fromlen, tid, tid_len,203, "Announce_peer with wrong token");break;}if(port == 0) {_dout("Announce_peer with forbidden port %d.\n", port);send_error(fromAddr, fromlen, tid, tid_len,203, "Announce_peer with forbidden port number");break;}if(callback) 

http://chatgpt.dhexx.cn/article/RpyOmHaC.shtml

相关文章

P2P下载器-P2P种子搜索器

P2P种子搜索器(p2psearcher)是一款集种子搜索器和在线云点播于一身的实用工具,基于先进的P2P搜索技术,可在瞬间搜遍全球ED2k网络资源。p2psearcher搜到的视频资源可以直接在右侧的云点播播放页面试播预览,并且提供高品质观影效果。需要的朋友…

这才是CSDN最系统的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

网络安全学习资源分享

提高技能 网络安全学习资源汇总 项目描述OWASP安全的牧羊人(https://security-shepherd.ctf365.com/login.jsp)作为11/6破ctflearn(https://ctflearn.com/)基于CTF网站账户,用户可以在解决一系列挑战ctfs写-不间断电…

网络安全学习路线,入门到入坟,史上最全网络安全学习路线整理

很多小伙伴在网上搜索网络安全时,会出来网络安全工程师这样一个职位,它的范围很广,只要是与网络安全挂钩的技术人员都算网络安全工程师,一些小伙伴就有疑问了,网络安全现在真的很火吗? 那么寒哥就带大家看…

网络安全学习:安全学习

特别有用 赶脚,,,赶脚,,,这组比较像,,,因为响应头带了个audio,再巴拉开响应头看看: 就是你了 /20170407233726/7bcb1a38c8e959f677b58519ac8a2958/ymusic/9c2b/57dd/26dc/df6def971d6cdd160d347dcb6a1c18f4.mp3 之后就不在C盘的缓存文件夹里巴拉了&…

网络安全(黑客)学习路线

目录 背景 那么要怎么才能成为一名黑客呢? (1)基础部分 ​编辑(1.1)计算机网络 : (1.2)Linux 系统及命令 : (1.3)Web 框架 : &…

网络安全学习路线

如何成为一名黑客,很多朋友在学习安全方面都会半路转行,因为不知如何去学,今天在知乎看到个不错的,果断收藏学习下路线。此篇博课讲的非常细,有兴趣的同学可以参考。 关于黑客或网络安全如何入门和学习路径,我在去年的问答和专栏中也陆陆续续解读过,近期知乎时间线上又…

网络安全学习篇

提示:学习网络安全,了解网络知识 文章目录 (一)虚拟机环境搭建01虚拟机概述传统运行模式虚拟机运行架构1.寄生架构 (实验环境、测试环境)2.原生架构(生产环境) 虚拟机平台产品FTP服务器 02虚拟机管理2.1关闭…

网络学习---网络安全、HTTPS

网络安全 网络通信中,面临的4种安全威胁 截取:窃听通信内容中断:中断网络通信篡改:篡改通信内容伪造:伪造通信内容 网络层 - ARP欺骗 ARP欺骗可以造成的后果: 可以让攻击者获取局域网上的数据包&#x…

信息安全的一些东西,初步查询了解!

学信息安全需要哪些基础: https://zhidao.baidu.com/question/1864586538306265827.html 有哪些信息安全方面的经典书籍: https://zhidao.baidu.com/question/2207926205965713708.html 信息安全推荐书籍: https://www.cnblogs.com/zytrue/p/…

网络安全学习网站

https://www.ctftools.com CTF工具合集 http://www.shiyanbar.com/ 西普实验吧 http://hackinglab.cn/encode.php实验室 http://www.ichunqiu.com/i春秋 https://www.shiyanlou.com/实验楼 http://www.hetianlab.com/合天 综合学习平台: http://edu.go…

5个自学网络安全的网站,全是技术干货!

自学肯定少不了去技术网站“偷师学艺”,今天也整理了一些我常看的技术网站,给想自学网络安全的朋友一点参考建议。 话不多说,直接开整(仅供参考,有不当之处欢迎指出改正) 一、FreeBuf FreeBuf是网络安全行业…

数据库优化详解

一、优化方向 可以看出来,数据结构、SQL、索引是成本最低,且效果最好的优化手段。 数据库优化从以下几个方面优化: 数据库设计—三大范式、字段、表结构 数据库索引 存储过程 (模块化编程,可以提高速度) 分表分库 (水平分割&a…

数据库查询优化器

引言 我们知道,目前通用的数据库查询语言是SQL语言(Structured Query Language)。SQL语言也是一种编译型语言,需要SQL编译器编译后才能执行,但它与C、C、Java等语言不同,SQL语言是一种非过程化语言&#x…

数据库优化 - 实例优化

从网上去搜数据库优化基本都是从SQL层次进行优化的,很少有提及到数据库本身的实例优化。就算有也都是基于某个特定数据库的实例优化,本文涵盖目前市面上所有主流数据库的实例优化(Oralce、MySQL、POSTGRES、达梦),按照文章的配置能…

MySQL数据库优化总结

在说mysql优化之前,我们首先要知道的一个事情,就是系统优化顺序是怎么样的?如下图: 架构调优:在系统设计时首先需要充分考虑业务的实际情况,是否可以把不适合数据库做的事情放到数据仓库、搜索引擎或者缓存…

数据库优化常用方案

从图中可以很明显的看出Mysql数据库优化的常用方法以及成本的高低。sql语句的优化和索引的优化是成本最小但是效果最好的方法,关于这两点我总结了如下几个优化方法: 1、sql语句中不使用子查询,比如delete from user where uid not in( selec…

数据库优化:优化SQL步骤

优化SQL步骤 1 查看SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。show [session|global] status 可以根据需要加上参数“session”或者“global”来显示 session 级(当前连接)的计结…

数据库优化一般思路(个人经验之谈)

随着系统规模的不断增加,数据量和并发量不断增大,整个系统架构中最先受到冲击而形成瓶颈的,定然是数据库,因此数据库层面的优化,是一个程序员不可或缺的技能,以下是我在使用数据库中的一些心得,…

有哪些常见的数据库优化方法

数据库优化这个话题很大,我从最常见的也是最有效的优化手段索引优化的角度来回答一下: 系统的性能瓶颈很多时候都出现在数据库,而数据库的性能优化最先入手之处应当是索引,通过索引的优化可以用最少的成本获得最大的性能提升。 …