我有從磁力鏈接洪流哈希。例如:fda164e7af470f83ea699a529845a9353cc26576 當我嘗試獲取有關吸血鬼和同伴的信息時,我應該請求:http://tracker.publicbt.com/scrape?info_hash= ??? 我應該如何轉換此請求的信息哈希值?它是網址編碼還是becoding?怎麼樣?在PHP中。如何將torrent信息散列轉換爲scrape?
3
A
回答
3
這是一個原始的十六進制表示。使用pack()
和H
將其轉換。然後URL編碼它。
1
得到了同事此蟒片斷,
r = ''
s = 'fda164e7af470f83ea699a529845a9353cc26576'
for n in range(0, len(s), 2):
r += '%%%s' % s[n:n+2].upper()
print r
輸出:%FD%A1%64%E7%AF%47%0F%83%EA%69%9A%52%98%45% A9%35%3C%C2%65%76
工程就像一個魅力。
編輯:就像一個魅力用於獲取跟蹤器給回狀態200(OK),但仍檢索洪流細節不工作...
1
如果有人遇到問題和遇到這在將來的線程:這個問題的訣竅是使用PHP: sha1函數的bool $raw_output
參數,並將其設置爲「true」。
BDecode/DEncode類可以找到HERE。這個名爲Trackon的項目還包含許多其他有用的類,以便與洪流跟蹤器和文件進行交互。
因此,在PHP中,像這樣將努力獲得正確信息哈希刮跟蹤器的詳細信息:
include('./path/to/BDecode.php');
include('./path/to/BEncode.php');
function getHash($torFile){
$tfile = BDecode(file_get_contents($torFile));
$infohash = sha1(BEncode($tfile["info"]), TRUE);
return urlencode($infohash);
}
然後僅僅把它就像這樣:
$hash = getHash('./path/to/.torrent');
希望這可以幫助那裏的人。在閱讀了許多關於如何獲取正確信息散列的文章後,我仍然在撓頭。我明白爲什麼現在沒有提到這個問題,但是這個參數是在PHP 5中添加的。如果你沒有運行PHP 5,那麼在計算之後,你必須將sha1哈希轉換爲原始二進制。
相關問題
- 1. 如何將torrent信息散列轉換爲scrape使用php?
- 2. 解析torrent文件 - 散列信息。 (Erlang)
- 3. 如何計算Torrent信息散列在VB6
- 4. 如何生成所有可能的Torrent信息散列?
- 5. 將散列轉換爲嵌套散列
- 6. 如何將信息轉換爲散列,並將這些信息的輸出格式化?
- 7. 將散列轉換爲NSString?
- 8. 將Arraylist轉換爲信息
- 9. 如何將perl散列轉換爲javascript散列
- 10. 如何將一個散列轉換爲另一個散列?
- 11. 如何將散列數組轉換爲散列值數組?
- 12. 如何將行中的信息轉換爲R中的一列?
- 13. 如何將字符串轉換爲散列或將其添加到散列
- 14. 將散列陣列轉換爲散列陣列
- 15. 如何將Bit Torrent info_hash(從Wireshark獲取)轉換爲SHA1哈希
- 16. 如何將此序列轉換爲此散列?
- 17. 如何將下列數組轉換爲散列?
- 18. Ruby/Rails:將範圍轉換爲散列
- 19. 將散列轉換爲結構
- 20. 將var數據轉換爲散列表
- 21. Ruby將字符串轉換爲散列
- 22. Ruby RestClient將XML轉換爲散列
- 23. 防止將散列表轉換爲ASCII
- 24. 將設置文件轉換爲散列
- 25. JavaScript將字符串轉換爲散列
- 26. clojure將lazy-seq轉換爲散列圖
- 27. 將散列轉換爲NSNumberWithInt不一致?
- 28. 將Varchar值轉換爲散列值:varchar
- 29. 將數組轉換爲散列
- 30. 將字符串轉換爲散列圖