1

こんにちは、次のことができるようになりたいです。

<?php

function get_data($url)
{
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}
$data = get_data('https://torcache.net/torrent/7975CDEEDCEC6092729DAEAE302CB9BD7D633B0B.torrent');

?>

ただし、torcache が html ページを返しているようで、数秒後に torrent が切断されます。curl が実際の torrent を取得する方法はありますか? 現時点では、$data には torcache が返す HTML ページが含まれているだけですか?

リファラーを次のように設定しようとしました: curl_setopt($ch, CURLOPT_REFERER, 'https://torcache.net/torrent/7975CDEEDCEC6092729DAEAE302CB9BD7D633B0B.torrent');

しかし、機能していません。次の応答が返されます。

<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.2.0</center>
</body>
</html>

ありがとう

解決済み:

function get_data($url)
{
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_REFERER, 'https://torcache.net/');
    curl_setopt($ch,CURLOPT_ENCODING,"gzip");
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

「curl_setopt($ch,CURLOPT_ENCODING,"gzip");」を追加 これもデータが gzip されたためです。

4

2 に答える 2

0

$_GET['tor']torrentz.eu サイトからの info_hash が含まれている場合、これでうまくいくはずです。

$ch = curl_init('http://torcache.net/torrent/'.strtoupper($_GET['tor']).'.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/'.strtoupper($_GET['tor']).'.torrent')); 
curl_setopt($ch, CURLOPT_REFERER, 'http://torcache.net/torrent/'.strtoupper($_GET['tor']).'.torrent'); 
curl_setopt($ch, CURLOPT_ENCODING,"gzip");
$result = curl_exec($ch);
echo $result;
于 2012-07-10T07:13:39.037 に答える
0

HTML ページと torrent ファイルのどちらをサーバーに送信するかを確認する方法を理解してください。私の推測では、HTTP_REFERER. なりすまし。

于 2012-05-10T19:19:59.127 に答える