当前位置: 首页 > article >正文

磁力链接转换为种子文件 magnet to torrent

作者:zxx

1.前言

      将种子文件转换为磁力链接很简单,只需要在种子文件的infohash码前面加上magnet:?xt=urn:btih:即可,相信大家在迅雷,utorrent等主流软件上也都能发现这个功能。

      但是将磁力链接转换为种子文件就不那么简单了,因为sha-1算法是不可逆的,但是BT协议确提供了这个功能,但是我在网上没有找到中文的介绍,这里就将自己的研究心得贡献一下。
     下面还想废话2句,告诉大家使用磁链和种子的优缺点。其实磁力链接本身是没什么用的,不管在任何软件的磁链下载中,都必须要先通过磁链得到种子文件,再使用种子文件进行常规下载。因为种子文件才有分片信息,文件大小,文件名等必要信息。所以可以看出,种子其实是必不可少的,那你可能会觉得奇怪,为什么还需要磁链呢?这是因为现在对BT的封锁太严重,传播种子并不是那么简单的事了,动不动就被和谐了,所以磁链的作用就是便于传输,因为磁链就是一个小小的文本,而种子确是一个文件呢~所以总结一下他们的优缺点:
A.种子:稳定性高,信息多,不便于传播扩散
B.磁力链接:仍需要先获得种子,不稳定,可能在某时刻不能获取,但是很便于扩散。 
 

2.磁力链接到种子转换的策略


本人现在的研究共发现3种策略:
A.利用BT的官方协议获取
B.从迅雷的种子库获取
C.从比特彗星的种子库获取

下面对三种策略做简单介绍:

第一种,利用BT的官方协议获取

性能特色:
这种策略可以获取最多的种子,但是速度最慢,因为是官方的协议,所以很稳定,但是如果这个种子是个冷门种子时,很可能会获取不到,因为当前没有DHT用户在线,所以当使用迅雷,utorrent等客户端软件提示无法获取种子时,你可以待会再试,过阵子可能有对应种子的用户上线,她如果加入了DHT网络,我们就可以获取种子了。

实现原理:
这个方法需要阅读官方的2个扩展协议:
http://www.bittorrent.org/beps/bep_0010.html
http://www.bittorrent.org/beps/bep_0009.html            

翻译稿:http://blog.csdn.net/xxxxxx91116/article/details/8549454


理解并实现这2个协议后就可以获取种子了,下面是2个协议的翻译稿。

bep_0009翻译稿:http://blog.csdn.net/xxxxxx91116/article/details/8549454


好消息!我发现这个网站 http://btdigg.org/ 是使用extend协议进行解析,大家可以试用下~速度可能会很慢,但是应该可以解析很多库里面没有的种子。


第二种,从迅雷的种子库获取

性能特色:
这种策略获取种子的速度很快,当你有一批磁力链接时,可以先使用这种方法来获取大部分种子,对迅雷种子库没有的部分,再使用第一种方法获取。

实现原理:
非常简单,在浏览器中输入
http://bt.box.n0808.com/05/A5/05153F611B337A378F73F0D32D2C16D362D06BA5.torrent
即可获取种子,其中的 05153F611B337A378F73F0D32D2C16D362D06BA5是对应种子文件的infohash码,也就是磁链的btih:字段,/05/A5是hash的第一个和最后一个字节。
当你需要大规模获取时,就自己用C++构造一个报文内从去请求吧。

第三种,从比特彗星的种子库获取

性能特色:同第二种的性能特色,但是比特彗星的库里面种子更多。因为比特彗星可以制作种子,在制作的同时可能就上传到库里面了。

实现原理:
我还没有解析出来,大家可以参见文章:
http://www.cnblogs.com/UMU618/articles/2568579.html,但是这位牛人也忘记了hash字段是怎样加密的,我不知道怎样从hash到key。如果有人发现了,希望您能告诉我,谢谢!

 

攻城诗赋:
第三种比特彗星成功率也很高,而且貌似不净网。至于hash的算法是
hash转回20字节形式前加“bc”后加"torrent"共29字节做SHA1得到20字节转回可读40字节形式

 

 

第四种,从Vuze的种子库获取

这个也蛮厉害的,我搞了半天才搞出来......

比如对于infohash为03621694F0E8B2CE87216C99CB5CA3AF23029E37的磁力链接,构造下面的URL:

http://magnet.vuze.com/magnetLookup?hash=ANRBNFHQ5CZM5BZBNSM4WXFDV4RQFHRX

其中的ANRBNFHQ5CZM5BZBNSM4WXFDV4RQFHRX是03621694F0E8B2CE87216C99CB5CA3AF23029E37的base32码,但是不能直接去网上base32转,因为转码要用03621694F0E8B2CE87216C99CB5CA3AF23029E37的二进制数据

linux下可以这样转

 

echo -n 03621694F0E8B2CE87216C99CB5CA3AF23029E37 | xxd -r -p|./perl_32.pl


其中的 perl_32.pl 是一个源文件,内容如下:

  1. #!/usr/bin/perl

  2. use MIME::Base32 qw( RFC );

  3. undef $/; # in case stdin has newlines

  4. $string = <STDIN>;

  5. $encoded = MIME::Base32::encode($string);

  6. print "$encoded\n";


如果权限不对记得要

 

 

chmod 777 perl_32.pl


 

 

 

 

补充一些种子库:

 

http://torrage.com/torrent/66B106B04F931DA3485282C43CF66F6BD795C8C4.torrent

http://torcache.net/torrent/66B106B04F931DA3485282C43CF66F6BD795C8C4.torrent

http://zoink.it/torrent/66B106B04F931DA3485282C43CF66F6BD795C8C4.torrent

http://magnet2torrent.com/:最终重定向使用torrage.com进行下载

http://mag2tor.com/static/torrents/05/15/3f/05153f611b337a378f73f0d32d2c16d362d06ba5.torrent 缓存的种子很少

http://178.73.198.210/:torrage.ws:http://178.73.198.210/torrent/640FE84C613C17F663551D218689A64E8AEBEABE.torrent

http://www.lryc.cn/news/2419438.html

相关文章:

  • 深入浅出声学系统频率响应
  • Android开发者必须收藏的8个开源库,值得收藏!_android 开源鉴黄
  • 关于System.currentTimeMillis()的理解
  • python的np.meshgrid函数
  • 数字后端概念——shielding
  • 用hist()绘制直方图
  • [转]推荐一款新型 Java 网站内容管理系统,灵活、易用,运行稳定,轻松管理建设网站(附源码)
  • Linux tar命令详解,Linux备份解压文件_linux tar备份文件
  • 新手怎么炒外汇?
  • 【合唱】男女差八度的科学解释
  • handoop job工作运行的机制与原理详解
  • 20款最流行的免费定性数据分析工具
  • 主数据管理和实施
  • Linux 详解:最完整的入门指南_linux菜鸟入门指南
  • 【游戏】如何开发一款游戏:游戏开发流程及所需工具
  • 飞鸡:从小训练飞行的鸡能飞行吗?为什么野鸡能飞吗?是同一品种吗?今天自由思考
  • c++_ifstream,ofstream读写文件
  • 使用rkhunter检测Linux的rootkit
  • jdk源码写过注释后debug提示source code does not match the bytecode
  • nodejs中的__filename和__dirname的使用说明
  • UIE: 信息抽取的大一统模型
  • 推荐使用:jQuery FullScreen 插件 —— 让全屏模式优雅而简单
  • 钓鱼邮件从入门到放弃
  • SWT简介
  • 查看占用网速的程序
  • 【LINUX】linux中修改文件命名
  • isalpha()方法介绍
  • Oracle数据库的下载安装教程
  • 在虚拟机上安装Ubuntu系统(详细附图)
  • 系统流程图