首页 > 编程知识 正文

磁力搜索引擎原理

时间:2023-05-04 05:42:51 阅读:194766 作者:2841

通过DHT协议爬取种子文件的hash值(磁力链地址)

   DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络。DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。通过加入DHT网络,可以轻松的每天获取百万的hash值,每个hash值都是由一个BT种子文件产生的。

下载BT种子文件

  实际上,通过hash就能知道磁力链接了,但只有这些是没有任何意义的,因为你不知道这个链接包含的文件名是什么,象迅雷,旋风等下载下载工具通过磁力下载这些种子的时候,下载工具会到内部服务器的种子库里去查找,通过hash值,可以搜索出位于该服务器上的BT种子位置,然后下载这个种子。也就是说,用某一个下载工具通过磁力链magnet下载torrent文件,并不是每次都一定能下载成功。通过dht也能下载种子,但速度极慢,几乎不可接受,有几个种子仓库网站象 和 等,可以为下种提供大大的方便。

分析BT种子文件

  提取BT种子文件名,文件大小,创建日期等摘要信息,并通过BT种子文件计算得到hash值(嘿嘿,有了这个,就有了传说中的磁力链接)。这部分的工作相对容易,只需要对种子文件格式有详细的了解即可,网上的相关的文档一大堆。

磁力链接的原理

磁力链接由一组参数组成,参数间的顺序没有讲究,其格式与在HTTP链接末尾的查询字符串相同。通常是一个特定文件的内容散列函数值形成的URN,例如:magnet:?xt=urn:btih:4D9FA761D69964B00DF0B3B0C9C1F968EA6C47D0&xt=urn:ed2k:7655dbacff9395e579c4c9cb49cbec0e&dn=bbb_sunflower_2160p_30fps_stereo_abl.mp4&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&ws=http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_2160p_30fps_stereo_abl.mp4
虽然这个链接指向一个特定文件,但是客户端应用程序仍然必须进行搜索来确定哪里。

磁力链接参数的定义如下:

magnet:协议名。

xt:exact topic的缩写,包含文件哈希值的统一资源名称。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用ED2K,AICH,SHA1和MD5等。这个值是文件的标识符,是不可缺少的。

dn:display name的缩写,表示向用户显示的文件名。这一项是选填的。

tr:tracker的缩写,表示tracker服务器的地址。这一项也是选填的。

ws: webseed的缩写,表示网络种子。

urn: (Uniform Resource Name, URN 表示资源名

btih:BitTorrent info hash,种子散列函数

应用程序定义的实验参数,必须以"x."开头。 

标准还建议同类的多个参数可以在参数名称后面加上".1", ".2"等来使用,例如:
magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7

把BT种子文件摘要信息存入数据库

  数据库最基本的字段包括文件名,文件列表,文件大小,创建时间,索引时间,hash值等,但由于文件数量众多,设计数据库时需要考虑性能问题。

建立数据库的搜索索引

  这个可以使用任何的开源搜索引擎(如lucence,sphinx等),使用的过程并不复杂,但需要对搜索引擎的工作机制有一个基础的了解。

建立网站

  使用的php做前端页面,目前网站已经收录了2千多万条资源,几乎包括所有的电影(最新电影都会第一时间收录),也有大量的音乐,软件等资源,网站截图如下:

相关阅读:

后端技术杂谈2:搜索引擎工作原理 

https://blog.csdn.net/a724888/article/details/80993346

BT种子的技术原理是什么?.torrent文件如何理解?

BT种子的技术原理是什么?.torrent文件如何理解?_神棍之路-CSDN博客

利用Python爬虫建立自己的磁力搜索引擎 

利用Python爬虫建立自己的磁力搜索引擎_verygoodo的博客-CSDN博客

磁力链接 

磁力链接_百度百科

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。