DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络。DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。通过加入DHT网络,可以轻松的每天获取百万的hash值,每个hash值都是由一个BT种子文件产生的。
实际上,通过hash就能知道磁力链接了,但只有这些是没有任何意义的,因为你不知道这个链接包含的文件名是什么,象迅雷,旋风等下载下载工具通过磁力下载这些种子的时候,下载工具会到内部服务器的种子库里去查找,通过hash值,可以搜索出位于该服务器上的BT种子位置,然后下载这个种子。也就是说,用某一个下载工具通过磁力链magnet下载torrent文件,并不是每次都一定能下载成功。通过dht也能下载种子,但速度极慢,几乎不可接受,有几个种子仓库网站象 so123.pw 和 torrage.com等,可以为下种提供大大的方便。
提取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
数据库最基本的字段包括文件名,文件列表,文件大小,创建时间,索引时间,hash值等,但由于文件数量众多,设计数据库时需要考虑性能问题。
这个可以使用任何的开源搜索引擎(如lucence,sphinx等),使用的过程并不复杂,但需要对搜索引擎的工作机制有一个基础的了解。
使用的php做前端页面,目前网站已经收录了2千多万条资源,几乎包括所有的电影(最新电影都会第一时间收录),也有大量的音乐,软件等资源,网站截图如下:
后端技术杂谈2:搜索引擎工作原理
https://blog.csdn.net/a724888/article/details/80993346
BT种子的技术原理是什么?.torrent文件如何理解?
https://blog.csdn.net/Jailman/article/details/86016870
利用Python爬虫建立自己的磁力搜索引擎
https://blog.csdn.net/verygoodo/article/details/101025542
磁力链接
https://baike.baidu.com/item/%E7%A3%81%E5%8A%9B%E9%93%BE%E6%8E%A5/5867775?fr=aladdin