linux 制作BT种子并获取BT种子信息

简介:

最近研究了一下linux BT服务器环境的搭建,需要在linux下制作BT种子并获取BT种子信息,整理了一下这个过程:

制作BT种子软件下载地址:http://jaist.dl.sourceforge.net/project/mktorrent/mktorrent/1.0/mktorrent-1.0.tar.gz

安装:

[root@localhost src]# tar zxf mktorrent-1.0.tar.gz

[root@localhost src]# cd mktorrent-1.0

[root@localhost mktorrent-1.0]# make

[root@localhost mktorrent-1.0]# make install

[root@localhost ~]# which mktorrent

/usr/local/bin/mktorrent


需要python的bencode模块来获取BT种子信息,下载地址:https://pypi.python.org/packages/source/b/bencode/bencode-1.0.tar.gz

安装:

#tar -zxf bencode-1.0.tar.gz

#cd bencode-1.0.tar.gz

#python setup.py install


制作和验证的python脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import  os, re, time, sys
import  hashlib, bencode
file_name  =  'bt_test.exe'
bt_source  =  '/data/updir/%s'  %  file_name
bt_name  =  '/data/source/%s.torrent'  %  file_name
if  os.path.exists(bt_name):
     os.remove(bt_name)
if  os.path.exists(bt_source):
     conm  =  "/usr/local/bin/mktorrent -v -p -l 18 -a http://bt1.text.cn/announce -a http://bt2.text.cn/announce -o %s %s"  %  (bt_name,bt_source)
     res  =  os.popen(conm).readlines()[ - 1 ].strip()
     if  'done'  in  res:
         bt_path  =  {}
         bt_file  =  open (bt_name,  'rb' )
         bt_info  =  bencode.bdecode(bt_file.read()).get( 'info' )
         bt_info_hash_hex  =  hashlib.sha1(bencode.bencode(bt_info)).hexdigest()
         if  os.path.isdir(bt_source):
             bt_file_size  =  0
             for  length  in  bt_info.get( 'files' ):
                 bt_file_size  =  bt_file_size  +  int (length[ 'length' ])
                 bt_path[ '/' .join(length[ 'path' ])]  =  length[ 'length' ]
         else :
             bt_file_size  =  bt_info.get( 'length' )
             bt_file_name  =  bt_info.get( 'name' )
             bt_path[bt_file_name] = bt_file_size
         bt_file.close()
         print  bt_path
         print  "Create torrent success"
     else :
         print  "Create torrent Error"
         sys.exit()
else :
     print  "This source not find"
     sys.exit()

file_name为做种的文件或目录名字。



本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/1216616,如需转载请自行联系原作者

相关文章
|
18天前
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
36 0
|
1月前
|
Linux
如何在linux中查看cpu信息、机器硬件型号
如何在linux中查看cpu信息、机器硬件型号
|
1月前
|
监控 数据可视化 Linux
linux查看CPU信息
在Linux中检查CPU信息,可使用`lscpu`快速查看概述,`cat /proc/cpuinfo`获取详细硬件数据,`top`或`htop`(如果安装)监控实时使用率,`mpstat -P ALL`显示统计详情,而图形界面环境下可通过系统监视器应用直观查看。
21 3
|
1月前
|
缓存 监控 数据可视化
linux查看内存信息
在Linux中检查内存使用:`free -h`或`-m`显示简洁内存统计;`cat /proc/meminfo`获取详细信息;`top`或`htop`(如果安装)实时监控进程内存占用;`vmstat`查看虚拟内存统计;`sar -r`(需要sysstat)报告系统内存活动。图形工具如Gnome System Monitor提供可视化界面。
28 4
|
2月前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
81 0
|
1月前
|
存储 Linux
linux查看系统版本、内核信息、操作系统类型版本
linux查看系统版本、内核信息、操作系统类型版本
62 9
|
1月前
|
Ubuntu Linux
linux查看系统版本及内核信息
在Linux中检查系统版本和内核信息,可使用`uname -r`查看内核版本,`uname -a`获取详细信息,或者查看`/proc/version`。要了解发行版版本,尝试`lsb_release -a`(如果安装了)或查阅`/etc/os-release`。Red Hat家族用`/etc/redhat-release`,Debian和Ubuntu系用`/etc/issue`及相关文件。不同发行版可能需不同命令。
36 3
|
3天前
|
Linux
linux驱动层输出dev_dbg打印信息
linux驱动层输出dev_dbg打印信息
7 0
|
11天前
|
弹性计算 运维 Shell
统计Linux 进程相关数量信息
【4月更文挑战第29天】
10 0
|
11天前
|
弹性计算 运维 Shell
统计 Linux 进程相关数量信息
【4月更文挑战第29天】
7 1