使用erlang实现P2P磁力搜索-实现
2014-06-19 10:15
330 查看
DHT网络本质上是一个用于查询的网络,其用于查询一个资源有哪些计算机正在下载。每个资源都有一个20字节长度的ID用于标示,称为infohash。当一个程序作为DHT节点加入这个网络时,就会有其他节点来向你查询,当你做出回应后,对方就会记录下你。对方还会询问其他节点,当对方开始下载这个infohash对应的资源时,他就会告诉所有曾经询问过的节点,包括你。这个时候就可以确定,这个infohash对应的资源在这个网络中是有效的。
关于这个网络的工作原理,参看:P2P中DHT网络爬虫以及写了个磁力搜索的网页。
获取到infohash后能做什么?关键点在于,我们现在使用的磁力链接(magnet url),是和infohash对应起来的。也就是拿到infohash,就等于拿到一个磁力链接。但是这个爬虫还需要建立资源的信息,这些信息来源于种子文件。种子文件其实也是对应到一个资源,种子文件包含资源名、描述、文件列表、文件大小等信息。获取到infohash时,其实也获取到了对应的计算机地址,我们可以在这些计算机上下载到对应的种子文件。
但是我为了简单,在获取到infohash后,从一些提供映射磁力链到种子文件服务的网站上直接下载了对应的种子。dhtcrawler里使用了以下网站:找了台服务器将磁力链接爬虫架设起来http://www.51bt.cc(51搜索)大家可以看下。
关于这个网络的工作原理,参看:P2P中DHT网络爬虫以及写了个磁力搜索的网页。
获取到infohash后能做什么?关键点在于,我们现在使用的磁力链接(magnet url),是和infohash对应起来的。也就是拿到infohash,就等于拿到一个磁力链接。但是这个爬虫还需要建立资源的信息,这些信息来源于种子文件。种子文件其实也是对应到一个资源,种子文件包含资源名、描述、文件列表、文件大小等信息。获取到infohash时,其实也获取到了对应的计算机地址,我们可以在这些计算机上下载到对应的种子文件。
但是我为了简单,在获取到infohash后,从一些提供映射磁力链到种子文件服务的网站上直接下载了对应的种子。dhtcrawler里使用了以下网站:找了台服务器将磁力链接爬虫架设起来http://www.51bt.cc(51搜索)大家可以看下。
相关文章推荐
- 使用erlang实现P2P磁力搜索-实现
- 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)[搜片神器]
- 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
- WebGIS最佳实践4 使用pgRouting实现最佳路径搜索
- 使用Solr快速实现Django的全文搜索[转]
- 使用Zend_Search_Lucene实现频道搜索
- [翻译]使用LINQ实现动态搜索(Implementing Dynamic Searching Using LINQ)
- 使用Apache Solr实现企业搜索
- 使用python代码实现三叉搜索树高效率”自动输入提示”功能
- 使用正则表达式实现搜索关键字高亮显示
- 使用 Apache Solr 实现更加灵巧的搜索,第 1 部分: 基本特性和 Solr 模式
- ASP.NET使用正则表达式实现搜索关键字高亮显示
- Gnutella协议的相关介绍(Peercast实现P2P传输所使用的协议)
- 使用 Apache Solr 实现更加灵巧的搜索,第 1 部分: 基本特性和 Solr 模式
- Ext Js 4实现的一个搜索框,调用的是谷歌的api,使用谷歌来搜索
- 使用正则表达式实现搜索关键字高亮显示
- 使用Apache Solr实现企业搜索
- 使用Apache Solr实现企业搜索
- 使用C#实现P2P应用程序(附原码) 分享
- 使用AutoCompleteExtender实现搜索下拉提示框,读取数据库内容