отправка сообщения/получения с помощью php в TOR

Можно ли отправить/получить запрос на скрытый сервис tor с помощью php? Tor установлен на моем VPS, и он открывает 127.0.0.1:9050 scoks5 для доступа к сети Tor. Я пытаюсь использовать POST через прокси, как в примере в конце, но ничего не происходит. Пожалуйста, скажите мне, что не так в этом отношении.

<?php
$proxy = "127.0.0.1";
$port = "9050";
$url = "https://mydomain.onion/input.php";

$fp = fsockopen($proxy, $port, $errno, $errstr, 30);
$url = @parse_url($url);

if($fp)
{
    //reading data
    if(($data = @file_get_contents('php://input')) === false)$data = '';

    $request  = "POST {$url['path']}." HTTP/1.1\r\n";
   $request .= "Host: {$url['host']}\r\n";
   if(!empty($_SERVER['HTTP_USER_AGENT']))$request .= "User-Agent:    {$_SERVER['HTTP_USER_AGENT']}\r\n";
   $request .= "Content-Type: application/x-www-form-urlencoded\r\n";
   $request .= "Content-Length: ".strlen($data)."\r\n";
   $request .= "Connection: Close\r\n";
   //trying to send request
   fwrite($fp, $headers.$data);
   //trying to get answer
   while(!feof($fp))  echo fread($fp, 1024);
   fclose($fp);
}
else die; 
?>

person klatoverato    schedule 18.04.2014    source источник
comment
о нет, Tor легален, не так ли?   -  person klatoverato    schedule 18.04.2014
comment
Я просто рыхлый мат почти выходные ;)   -  person Daan    schedule 18.04.2014
comment
Мое решение решило вашу проблему?   -  person Alexey Palamar    schedule 18.04.2014
comment
К сожалению начал заниматься этим всего 2 минуты назад, попробую и отпишусь о результатах здесь.   -  person klatoverato    schedule 18.04.2014
comment
Этот curl_exec должен работать только в браузере, или его может вызывать и другой скрипт?   -  person klatoverato    schedule 18.04.2014


Ответы (1)


Я использовал tor таким образом:

    $proxy = "127.0.0.1";
    $port = "9050";
    $url = "https://mydomain.onion/input.php";
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt ($ch, CURLOPT_PROXYTYPE, 7 );
    curl_setopt ($ch, CURLOPT_PROXY, $proxy.':'.$port );
    ob_start();

    curl_exec ($ch);
    curl_close ($ch);

    $result = ob_get_contents();
    ob_end_clean();
    var_dump($result);
person Alexey Palamar    schedule 18.04.2014
comment
Этот curl_exec должен работать только в браузере, или его может вызывать и другой скрипт? - person klatoverato; 18.04.2014