あるTrackerって・・・ ( No.7 ) |
- 日時: 2006/10/14 04:50
- 名前: ceem ID:MGhWkSaY
- うちのショボイTrackerのことですね^^;;
うちのTrackerではクライアントのバージョンごとに拒否しているわけではありません。
で、「Tracker Response Error:torrent not registered with this tracker」の原因ですが、Cometのユーザーエージェントが変更されたからだと思います。
実際にエラーを返しているのは以下の部分です。
--------------------------------------------------------------------- $strAgent = $_SERVER["HTTP_USER_AGENT"];
if(ereg("^Mozilla\\/", $strAgent) || ereg("^Opera\\/", $strAgent) || ereg("^Links ", $strAgent) || ereg("^Lynx\\/", $strAgent)) { err("torrent not registered with this tracker"); } --------------------------------------------------------------------- これはパターンにマッチするものに上記のエラーを返します。 ようするに、ブラウザから直接announceURLに対するリクエストを受け付けないようにするものです。 (Bittorrentに対応しているブラウザは、Trackerにリクエストを送る時はクライアント名+バージョンをエージェントとして通知しているハズです。) この機能は大多数のTrackerに実装されているでしょう。
このエラーを回避するにはCometのエージェントを元に戻すか、Tracker側のパターンマッチから該当のエージェントパターンを削除する必要があります。
しかし、Comet0.71以上では通常のIEと同じエージェント "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" を通知します。 よって、Tracker側からこのパターンを削除することはIEからのリクエストも受け付けることとなり、リクエストの処理に不具合が生じてしまうため認められません。
まぁ、0.71の書き直しで単純にエージェントの書き換えを忘れ、それに気付いていないだけだと思いますが なお、0.71以前のバージョンでは"BitTorrent/3.4.2"を、uTorrentでは"uTorrent/バージョン"をエージェントとして通知します。
よって、Cometのバグと言えばバグなんですかね?w 早く書き換えてくれることに期待age
あれですね、Tracker側のエラー文もエラー内容と合ってない気がしますね^^;; 「このユーザーエージェントからのリクエストは許可されていません」とかに書き換えておきます。
PS.mintさん、当方の使用していたのは0.70でしたよ あと、Trackerに送信するコードが変更されると言う事は大変なことですよ?w 全てのTrackerのコードを変更する必要がありますし、Bittorrentの仕様に関わってきますからね。
ちなみに、こんな感じのGETリクエストが送られます。
"GET /announce.php?info_hash=ハッシュ値peer_id=ピアID&port=ポート番号&natmapped=1&localip=ローカルIP&uploaded=UL量&downloaded=DL量&left=ファイルに対するDL完了ピースのバイト合計&numwant=200&compact=レスポンス制御フラグ&no_peer_id=1&key=何の値か不明 HTTP/1.0" 200 33 "-" "BitTorrent/3.4.2"
|
|