2011-03-30 84 views
1

我的問題是,當infohash包含'00',刮擦請求與%00,所以會在http回覆中有'\ 0'。 我發現了一些在infohash中有零字節的種子,我想知道跟蹤器應該如何回覆那些種子的Scrape請求。我的意思是''0'通常會工作?我測試了山洪與torrentspy和它總是說:BitTorrent跟蹤器在infohash'00'時刮回覆

「激流不跟蹤發現,可能是爛」

我寫了一個基本的跟蹤器來測試和驗證的完整刮答覆是寫入套接字但torrentspy仍然具有相同的輸出。當我看到在網頁瀏覽器中的scrape回覆時,它結束於'\ 0'有人能夠爲黑暗帶來光明嗎?

回答

2

這不是完全清楚你的問題是什麼,但我會盡力填補一些東西在。

「\ 0」並不比任何其他的非打印字符不同。所有非URL安全字符都必須在向HTTP跟蹤器的GET請求中以%xx格式轉義。一些追蹤者有錯誤,例如他們假設不需要轉義的字符不會被轉義(即他們可能會將轉義信息的版本存儲爲其內部表示)。一些網絡服務器甚至可能認爲`(單引號)總是被轉義(允許SQL注入攻擊)。所有特殊字符必須被轉義,尤其是&%(顯然)。

反應比較簡單。由於來自追蹤器的響應被編碼,因此所有信息散列都以二進制形式發送。即根本不存在編碼。當你對它進行解碼時,你可能希望對信息哈希進行十六進制編碼,因爲這是一種更加用戶友好的表示形式,也是打印它們的常規方式(在網站,磁鏈接,應用程序上)。

所以,對你的問題。當你說「在infohash中有零字節的種子」時,我假設你的意思是他們的信息散列有一個更多的字節,它是0.這是完全正常的,並不罕見。它通常會工作嗎?是的,您只需確保將其作爲%00轉義即可,就像您需要處理%01一樣。

您的洪流可能已經死亡,即追蹤器停止追蹤它。這就是錯誤信息的含義。它可能與info-hash中的零字節沒有任何關係。

+0

我的問題是如果tracker scrape的回覆可以被torrent客戶端和torrentspy解析,如果回覆中有\ 0。儘管TorrentSpy仍然託管在追蹤器上,但TorrentSpy總是說它不能被發現。我用一個自己編程的基本跟蹤器檢查了這一點,torrentspy也說,即使答覆是有效的,也沒有發現洪流。所以我想知道infohash中的00字節是否可以工作......這都是關於跟蹤器的簡要回復,而不是請求。 – Thorsten 2011-03-31 12:50:32