0

http://wiki.theory.org/BitTorrentSpecification#Tracker_Response、バイナリ ピア セクションのようarr = [24, 21, 25, 40, 236, 89]に、IP アドレス (最初の 4 バイト) とポート番号 (最後の 2 バイト) を表すためのこのような配列があるとします。 .

私の質問は次のとおりです。これから IP アドレスとポート番号を取得するにはどうすればよいですか?

arr[0..3].reverse.join '.'IP とarr[5] << 8 | arr[4]ポートが正しくないようです。

string_from_tracker.unpack 'C*'ここでは、を取得するarrので、ビットはすでにネイティブのエンディアンにあると想定しています...

これがどのように機能するのか、私にはよくわかりません。

ありがとう。

4

1 に答える 1

1

「正しくない部分」とは?つまり、期待される結果は何ですか?

少なくともここにはバグがあります。最後の 2 つの数字を組み合わせるには、次のようにします。

(arr[5] << 8) + arr[4]

これは を与え23020ます。Bittorrent のポート番号に似ているようです。

編集: Heh :) 実際、これは上記と同等です。

(arr[5] << 8) | arr[4]
于 2011-07-20T17:07:24.183 に答える