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']);
    }
    }

Torcache を使用すると、実際に torrent キャッシュをダウンロードする前に最初に html ページに移動するため、リファラー エージェントを設定する必要があります。ダウンロード後にウェブサイトに戻るには戻るボタンをクリックする必要があるため、これは面倒です。送信された GET ヘッダーを確認した後、html ページをスキップしてキャッシュを取得するように http リファラー エージェントを偽造したいと考えました。

4

2 に答える 2

4

いいえ、サーバーはクライアントに特定の HTTP リファラー値を送信するよう強制することはできません。

于 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 に答える