实验室连上寝室的网用寝室的ipv6下6v上的东西

标题已经很复杂了

6v上下东西直接挂代理行不通,隧道弄了一下午没弄好,miredo也没弄好 囧………

 

情况就略了,说起来太复杂了。今天弄了弄总算可以在实验室上下6v的东西了

 

可恶的吉大……

环境是寝室:路由+服务器

服务器:ubuntu 12.04 + squid + lighttpd +transmission

路由器开放 3128 给服务器的squid,9090开给transmission的RPC

客户端:python + transmissionrpc库

代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import transmissionrpc
import sys
import base64
import time
import os

address = '49.140.X.X'
port = '9090'
username = 'admin'
password = 'admin888'

download = 'axel -n20 --alternate'
remote_url = 'http://49.140.X.X/Downloads/'
storage_dir = '/home/fuckjlu/Downloads/'

if len(sys.argv) != 2:
    print 'Usage: %s [Torrent file path/list/TorrentID from remote host]' % sys.argv[0]
    sys.exit(1)

torrent_file = sys.argv[1]

try:
    int(torrent_file)
    has_id = True
except:
    has_id = False    


print '[*] Connecting to Transmission Server ...'
rpc = transmissionrpc.Client(address=address,port=port,user=username,password=password) 
print '[*] Adding torrent'

if sys.argv[1] == 'list':
    print 'Torrents in remote host:'
    for i in rpc.get_torrents():
        print i.id,i.name
    sys.exit(0)


if has_id == False:
    torrent = open(torrent_file).read()
    torrent = base64.b64encode(torrent)
    state = rpc.add_torrent(torrent)
    torrent_id = state.id
    print 'Torrent id from remote host:',torrent_id

else:
    try:
        state = rpc.get_torrent(sys.argv[1])
    except:
        print '[*] Torrent with specified id not exists in remote host'
        print 'Torrents in remote host:'
        for i in rpc.get_torrents():
            print i.id,i.name
        sys.exit(1)
    torrent_id = state.id

print 'Starting task:',state.name
while True:
    state = rpc.get_torrent(torrent_id)
    progress = state.progress
    if progress == 100:
        break
    print 'progress',progress,'%'
    time.sleep(10)
print 'Finished.'


for i in state.files().values():
    if os.path.basename(i['name']) != i: # if it has a subfolder
        path = os.path.join(storage_dir,os.path.dirname(i['name']))
        path = path.encode('utf8')
        if not os.path.exists(path):
            os.system('mkdir -p "%s"' % path)
    else:
        path = storage_dir
        path = path.encode('utf8')
    final_path  = path + '/' + os.path.basename(i['name'].encode('utf8'))
    print 'Downloading',i['name'],'\n'
    os.system('%s "%s" -o "%s"' % (download,(remote_url + i['name']).encode('utf8'),final_path))

if not has_id:
    print 'Removing files from remote host ...'
    rpc.remove_torrent(torrent_id,delete_data=True)
    print 'Done'

 

 

转载于:https://www.cnblogs.com/latyas/p/3449813.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值