Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将torrent信息哈希转换为scrape?_Php_Hash_Bittorrent_Tracker - Fatal编程技术网

Php 如何将torrent信息哈希转换为scrape?

Php 如何将torrent信息哈希转换为scrape?,php,hash,bittorrent,tracker,Php,Hash,Bittorrent,Tracker,我有一个来自磁铁链接的torrent哈希。例如:fda164e7af470f83ea699a529845a9353cc26576 当我试图获得有关李彻和同龄人的信息时,我应该要求:??? 我应该如何转换此请求的信息哈希?是url编码还是becoding?怎样?在PHP中,它是原始的十六进制表示形式。与H一起使用可对其进行转换。然后URL编码。从一位同事那里得到了这个python代码片段 r = '' s = 'fda164e7af470f83ea699a529845a9353cc26576' f

我有一个来自磁铁链接的torrent哈希。例如:fda164e7af470f83ea699a529845a9353cc26576 当我试图获得有关李彻和同龄人的信息时,我应该要求:???
我应该如何转换此请求的信息哈希?是url编码还是becoding?怎样?在PHP中,它是原始的十六进制表示形式。与
H
一起使用可对其进行转换。然后URL编码。

从一位同事那里得到了这个python代码片段

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)来说很有魅力,但对于检索torrent详细信息来说仍然不起作用…

万一有人遇到问题并且将来遇到此线程:整个问题的诀窍是使用函数的
bool$raw\u输出
参数,将其设置为“true”

可以找到BDecode/DEncode类。这个名为Trackon的项目还包括许多其他有用的类,用于与torrent跟踪器和文件交互

因此,在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');
希望这能帮助其他人。在阅读了许多关于如何获得正确信息散列的帖子后,我仍在挠头。我理解为什么现在没有提到这个,这个参数是在PHP5中添加的。如果您没有运行PHP5,则必须在计算sha1哈希后将其转换为原始二进制