2

有没有办法从服务器而不是浏览器发送 http 引荐来源网址?

这是我到目前为止尝试过的

    if ($download_result['redirect'])
    {
        header('Referer: http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent');
        header('Server: nginx/1.3.0');
        header('Content-Type: application/x-bittorrent');
        header('Content-Encoding: gzip');
        header('Content-Length: 10767');
        header('Location: ' . $download_result['url2']);
    }
    }

我需要设置引用代理,因为在实际下载 torrent 缓存之前,首先使用 Torcache 会转到一个 html 页面;这很烦人,因为您必须单击后退按钮才能在 dl 之后返回网站;在看到发送的 GET 标头后,我想伪造 http 引用代理,以便它跳过 html 页面并获取缓存

4

2 回答 2

4

不,服务器不能强制客户端发送特定的 HTTP Referer 值。

于 2012-06-16T21:43:12.383 回答
2

好吧,您可以像这样使用 cURL 执行 GET 请求。

header('Content-type: application/x-bittorrent');
$ch = curl_init('http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent');                                                                      
curl_setopt($ch, CURLOPT_POSTFIELDS, null);
curl_setopt($ch, CURLOPT_POST, FALSE);
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);                                                                 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-bittorrent','Referer: http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent')); 
curl_setopt($ch, CURLOPT_REFERER, 'http://torcache.net/torrent/DD157829553E81D3C513D93420624942FFA48D99.torrent'); 
curl_setopt($ch, CURLOPT_ENCODING,"gzip");
$result = curl_exec($ch);
echo $result;
于 2012-07-11T03:47:36.270 回答