1

私は基本的にこれを達成しようとしています:トレントトラッカーからピアを取得する方法

私はここで立ち往生しています:

それだけでなく、ハッシュの実際の値を GET パラメータとして送信する必要があります。「76a36f1d11c72eb5663eeb4cf31e351321efa3a3」はハッシュの 16 進数表現ですが、トラッカー プロトコルでは、ハッシュの値 (= バイト文字列) を送信する必要があると指定されています。したがって、最初に 16 進数表現をデコードしてから URL エンコードする必要があります。 %C7.%B5f%3E%EBL%F3%1E5%13%21%EF%A3%A3' # Python で。

私はかなり多くのことを調査しましたが、初心者のコーディング スキルのために、vb.net で次のことを行うことができません。誰か教えてください。

私は同じことをする必要があります: 16 進表現からハッシュのバイト文字列値への変換。

前もって感謝します

4

1 に答える 1

0

16進文字列をバイト配列に変換する簡単な方法がないことに驚きましたが、すぐに見つけられなかったので、ここに難しい方法があります。

  Dim hex As String = "76a36f1d11c72eb5663eeb4cf31e351321efa3a3"

  'prepend leading zero if needed
  If hex.Length Mod 2 <> 0 Then
     hex = " " & hex
  End If


  Dim bytes As Byte() = New Byte((hex.Length \ 2) - 1) {}
  For byteNum As Int32 = 0 To bytes.Length - 1

     bytes(byteNum) = Byte.Parse(hex.Substring(byteNum * 2, 2), 
           Globalization.NumberStyles.AllowHexSpecifier)

  Next

  'convert to an ansi string and escape
  Dim final As String =Uri.EscapeDataString( 
        System.Text.Encoding.Default.GetString(bytes))
于 2012-11-20T13:32:19.950 に答える