磁力引擎分享篇
感觉可能有些人会好奇:什么是磁力链接(MagnetURIscheme):类似下面这样以“magnet:?xt=urn:btih:”开头的字符串!仅仅是一个字符串,而不必像BT那样非得有.torrent的种子文件,传播方便!对于“种子”想必大家应该有所了解,就不多做介绍!
磁力链接是通过不同文件内容Hash结果生成一个纯文本的“数字指纹”,来识别文件的,而不是基于文件的位置或者名称。磁力链接这个“数字指纹”可以被任何人从任何文件上生成,这也就注定了磁力链接不需要任何“中心机构”的支持(例如:BTTracker服务器),且识别准确度极高。“磁力链接”是通过DHT网络来索引需要下载的文件的,因此在某些环境下可能出现“获取磁力链接信息”时间较长,或者获取失败的问题。
DHT网络
DHT全称叫分布式哈希表(DistributedHashTable),是一种分布式存储方法:在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。
通过检测DHT网络中的数据包就可以获得其他客户端发来的“磁力链接”,通过这些磁力链接下载相应的种子文件分析获取种子文件的文件资源名.
DHT中请求有ping,find_node,get_peers,announce_peer四种万方知识库:基于路由注入的快速DHT网络资源发现方法
关于生成发布等DHT知识的“搜索关键词”:
①去中心化网络DHT介绍
②[C#搜片神器]之P2P中DHT网络爬虫原理
DHT开源引擎代码:github.