1

libtorrentクライアントでダウンロード/アップロードの速度を制限したいと考えています。私はこれに次のコードを使用しています。Libtorrentの設定download_limit/upload_limitが動作しません

params = { 'save_path': '.', \ 
      'storage_mode': lt.storage_mode_t.storage_mode_sparse, \ 
      'ti': info, 'flags': 0x020 } 

h = ses.add_torrent(params) 
h.set_download_limit(100) 
h.set_upload_limit(100) 
h.resume() 

これは、0.1キロバイト/秒でデータをダウンロードする必要がありますが、まだそれは、周りの1500キロバイト/秒の速度でデータをダウンロードしています。

100.00% complete (down: 1576.0 kb/s up: 55.0 kB/s) 

私には何か不足していますか?

答えて

1

おそらく、あなたの同僚はあなたと同じローカルネットワーク上にいるかもしれません。デフォルトでは、ローカルピアはレート制限の対象にはなりません(hereと記載されています)。

レート制限をローカルピアに適用する方法に関するドキュメントは、少し欠けています。私はこのpull requestでこれを解決しようとしました。グローバルレート制限を行うための基本的

が、関係なく、彼らが持っているIPの、すべてのピアに適用され、次の操作を行います。

std::uint32_t const mask = 1 << lt::session::global_peer_class_id; 
ip_filter f; 

// for every IPv4 address, assign the global peer class 
f.add_rule(address_v4::from_string("0.0.0.0") 
    , address_v4::from_string("255.255.255.255") 
    , mask); 

// for every IPv6 address, assign the global peer class 
f.add_rule(address_v6::from_string("::") 
    , address_v6::from_string("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff") 
    , mask); 
ses.set_peer_class_filter(f); 
+0

はあなたのpythonの構文を提案することができます。私はそれのために何かを見つけることができません。 –

+0

g = lt.ip_filter()、g.add_rule( "0.0.0.0"、 "255.255.255.255"、0)を試してみました。ハンドルまたはlt.session()にset_peer_class_filterメソッドはありません。私はses.set_ip_filter(g)を試みましたが、まだ成功していません。 –

+0

私もses.set_local_download_rate_limit(10000)を試しました。この場合でも成功しません。 –

関連する問題