因为疫情的影响,今年端午一直没有出门,闲着无事看了一些DHT网络相关的东西。不求甚解,只图个好玩。
在说DHT网络之前,要先说P2P网络(Peer-To-Peer),P2P又叫做对等网络互联技术。在P2P网络中,各个节点都是平级的,没有客户端和服务端的概念。
BitTorrent是基于P2P网络的一种文件传输协议,运转原理:是:由中心化的Tracker服务器保存文件信息,当需要下载文件时候,由下载者向中心服务器询问文件在P2P网络中的位置信息(哪个IP拥有这个文件的哪些部分),然后下载机器通过P2P网络和其他机器进行文件传输。(这就是我们平时说的“种子”)。
上面提到的通信方式依赖于中心Tracker服务器,如果Tracker服务器存在网络问题或者宕机,会给整个BitTorrent带来毁灭性的打击(无法获取到文件在P2P网络中的信息,无法下载和交换文件),于是就诞生了DHT协议。
DHT的全称叫做分布式哈希表,通过定义infohash和nodehash、使用nodeid xor infohash来做距离判断。在发布文件的时候向infohash距离最近的Node广播文件(infohash)的信息,在在查找资源时使用同样的方法对距离最近的N个Node查找文件的信息。
原理说得差不多了,在玩儿的时候看到了一些好玩的东西在这里记录一下:
1. 基于DHT网络的爬虫
magnetico 自带了WebUI检索功能,推荐使用。
2. 1千万磁力链接
magnetico 使用SQLLite作为存储,在Issue中有人分享了自己的DHT爬虫数据,最多的DHT爬虫数据竟然有一千万条记录。

下载地址可见:https://tnt.maiti.info/dhtd/
3. 热心网友整理的Tracker
https://github.com/XIU2/TrackersListCollection
如果使用aria2的话还有一个小的脚本来更新aria2.conf的tracker列表
bash <(curl -fsSL git.io/tracker.sh) "/root/.aria2/aria2.conf"
如果文件不存在的话需要先创建文件
4. 一些磁力链接站
通过Google搜索磁力链接站可以获取到DHT网络的资源文件。
- 通过搜索一些类似Final Cut Pro的关键词可以获得FinalCutPro的破解版,通过P2P网络下载,实测速度比百度网盘要块很多。
- 通过搜索一些你懂的关键字,可以获得一些热心老司机整理的精彩合集,因为资源热门,下载起来也是十分方便。
最后:
因为一直有一点DataHoarder,如果有时间的话可以考虑改造一下爬虫,每天下载热度TopN的文件上传到不限流量的GoogleDriver里。(考虑到目前没有足够带宽的机器和时间,可能要很久很久之后才会做这个事情了