ポート上のBitTorrentクライアントのリスニングと話しますか?
-
24-09-2019 - |
質問
私は、このクライアントがサポートしているため、私は必要なメッセージの種類にを決定するために私を助け、そのポート45000私は(おそらくPerlや)小さなPythonでクライアントを記述しようとしています上のtorrentファイルを播種私のコンピュータのいずれかを持っているかもしれませんクライアントとのハンドシェイクを行います。 Azureusは、これはpeer.getSupportedMessagesような呼び出しを()を使用して行われます。 pythonでいくつかのライブラリを使用してこれを実行することが可能であるか、perlの?
返されるメッセージの例は次のようになります:
BT_KEEP_ALIVE
BT_PIECE
BT_REQUEST
BT_UNCHOKE
BT_UNINTERESTED
BT_SUGGEST_PIECE
BT_HAVE_ALL
BT_HAVE_NONE
BT_REJECT_REQUEST
BT_ALLOWED_FAST
BT_LT_EXT_MESSAGE
BT_DHT_PORT
lt_handshake
ut_pex
解決
私が言うことができるものから、
は、サポートされるメッセージのリストは、Azureusの(そしておそらくいくつかのAzureusの準拠ツール)でのみサポートされるカスタムハンドシェイクメッセージの一部であり、公式のBitTorrentシステムの一部ではありません。しかし、あなたはおそらく、bencoded AZハンドシェイクを作るあなたのシーダに送信し、応答を解読、およびサポートされているメッセージが何であるかを見ることができます。
AZHandshake.javaメッセージがどのように見えるかの詳細があります。
CPANから Bencode のモジュールを使用して、あなたのような何かを行うことができます> my $handshake = bencode {
identity => '', client => '', ... }; # All fields from AZHandshake.java
# send handshake to seeder and get a response
my $handshake_response = ...
my $dictionary = bdecode $handshake_response;
print join "\n", @{$dictionary->{messages}}, "\n";
もちろん、トリックがシーダからの有効な応答を誘発する適切なハンドシェイクを設定になります。残念ながら、私は仕事をプログラミングの少しを必要とせずにそれを行うだろう何も知りません。
所属していません StackOverflow