我有从磁力链接洪流哈希。例如: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. 将字符串转换为散列图