背景
最近一个非程序员的朋友,在我们的游戏开黑群里发了这样一个网站,说是可以通过IP查看自己下载了哪些东西。
我心里一惊!
啊?这玩意儿这么好用?
我当时很好奇,于是直接访问了这个网站?
得到如下结果。
我当时就懵了。我没下载过这些东西啊,怎么会???
原来是我当时用了”科学上网工具“,使用了系统代理,代理的IP是多个用户会共享的。
当我关掉系统代理,就发现其实我什么都没有下载过:
但是为什么这个网站可以知道别人下载了什么?
iknowwhatyoudownload的原理
为什么这个网站可以访问我的下载记录?
其实这个网站本身就提醒了,这个网站只是展示了,此IP的种子文件下载与分发。
那么不是种子文件,它能检测到吗?
并不会,我们随便下载一个文件试一下
下载后,再次访问此网站,发现仍是没有任何下载记录。
那它为什么可以获取到指定IP的种子文件的下载记录??
Torrent文件是什么?
种子文件到底是个什么东西??
虽然之前也用过,但是一直没有研究过,正好想到了这个问题,就深入了解一下。
通过谷歌搜了一下其概念:
嗷,原来是这个意思!于是我得到以下结论:
当你获取到一个种子文件时,种子文件会包含Tracker地址。你会去Tracker服务器知道哪些人正在下载这个文件,然后将文件进行分块儿,其他的每个下载者会一块儿一块儿的将文件发送给你,这样你就获取到了一个完整的文件,但是你也要去和种子文件中块儿的哈希对比一下,来验证文件的准确性。
那么就是说:
- 下载的人越多,下载速度越快 : 这个很容易理解,当下载的人越多,那么给你发送文件块儿的服务也就越多。就是我们在下载的同时,不只是从服务器上面下载数据,而是从服务器和其他所有正在下载的用户机器组成的一个巨大数据集中同时下载。如果我下载了文件的A、B两块儿,你下载了C、D两块儿,那么我就可以和你互相交换已下载的内容,而不用请求服务器,这样可以突破服务器带宽和地域限制。
- 上传限速,可以提高下载速度: 我们在下载的同时,也在为其他下载的用户提供服务,这样会占用掉一部分的带宽,所以理论上可以限制上传速度来提高下载速度(但是这样很没有贡献精神)。
- 总是卡在99%,是因为超级种子算法: 避免很多人下载了就跑掉了,一些非官方的BitTorrent协议中加入了超级种子算法。如果我下载的很快,BT客户端就会让我卡在99%,以方便我继续向其他用户提供数据。(实际上文件已经下载好了)
网站原理
从中可以窥见,iknowwhatyoudownload.com的原理非常简单:
iknowwhatyoudownload.com 通过监听 DHT(分布式哈希表) 网络来获取与特定 IP 地址相关的下载历史。同时网站收集了超过 150 万个种子 的元数据,并对这些数据进行分类(如成人内容、电影、游戏等)。通过分析 IP 地址在 DHT 网络中的活动,网站可以推测某一 IP 参与了哪些种子的下载或分发。
那什么是DHT呢??
DHT和磁力链接
通过询问DeepSeek,我得到了以下的内容(非常的通俗易懂版本):
1. 磁力链接(Magnet Link)是什么?
想象一下:
你想下载一部电影,但传统方式需要先下载一个 .torrent 文件(就像一张“地图”),告诉你去哪里找这部电影的碎片。但磁力链接直接把这“地图”的信息压缩成一串代码(比如magnet:?xt=urn:btih:XXXXX
),相当于直接说:
“我要找的东西的身份证号是XXXXX,你们谁有?”通俗版作用:
你不用先下载“.torrent文件”,直接复制一串磁力链接就能开始下载。
这串代码唯一对应一个资源(比如电影、软件),就像用身份证号找人一样。
2. DHT(分布式哈希表)是什么?
想象一下:
以前下载需要找“中介”(Tracker服务器)问:“谁有这部电影?”,中介告诉你其他下载者的联系方式。但如果中介跑路了,你就找不到人了。
DHT 的作用就是干掉这个中介!它让所有下载的人自己组成一个“互助网络”:
- 每个人记住一小部分人的联系方式(比如张三存李四的电话,李四存王五的电话)。
- 当你想找某部电影(比如身份证号XXXXX)时,你问身边的人:“你们谁认识有XXXXX的人?”
- 身边的人如果不知道,会帮你问他们认识的人,一层层传下去,直到找到真正有这部电影的人。
通俗版总结:
DHT 就是一个“不靠中介,靠群众互助”的电话簿系统。你问周围的人,周围的人再问他们周围的人,直到找到目标。磁力链接 + DHT 如何配合工作?
- 你拿到一个磁力链接(比如身份证号XXXXX)。
- 你把磁力链接扔进下载软件(比如迅雷、qBittorrent)。
- 软件通过 DHT 网络,在“互助群众”中问:“谁有身份证号XXXXX的东西?”
- 最终找到一群正在下载或已经下载完的人,从他们那里拼凑出完整的文件。
比喻:
磁力链接是你要找的东西的“身份证号”。
DHT 是一群帮你“人肉搜索”这个身份证号的热心路人。
为什么这俩组合很牛?
- 去中心化:不需要中介服务器,不怕被封杀。
- 抗审查:没有中心服务器,政府或公司很难直接关停。
- 方便:磁力链接一串代码就能分享,不用传文件。
缺点:
如果资源太冷门(没人下载),DHT 可能找不到人,下载就会卡住。
你的 IP 地址会暴露在 DHT 网络中(但可以用 VPN 或代理隐藏)。
总结:
- 磁力链接是“我要找啥”,DHT是“去哪找人帮忙找”。
- 它们一起让 BT 下载更自由、更去中心化,但也更依赖“群众的力量”。
当然,这个网站也可以以某种方式查看你的朋友下载的历史,感兴趣的自行去参考这篇文章不要再下片了!我知道你下载了什么!
总结
此网站基于种子文件的特点, 通过监测DHT来收集每个IP的种子文件下载记录。
这个网站确实能够查看大家的下载记录,但是对于大多数人而言,通常使用动态 IP 或共享 IP(如小区宽带),查询结果可能显示相邻用户的下载记录,而非精确到个人,所以你可以使用这个理由抵赖(手动狗头)。