PHP cURL через TOR, что я делаю не так?

Итак, я пытаюсь перейти на луковый сайт, например: facebookcorewwwi.onion. У меня будет следующий код:

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($curl, CURLOPT_URL, 'http://facebookcorewwwi.onion/');
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_HTTPGET, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:9050');
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($curl);
var_dump($html);

Это дает следующий результат:
bool(false)

но это не то, что я хочу в результате, я хочу фактическое содержимое страницы!
inb4: да, у меня открыт браузер tor

curl_error выдает следующую ошибку:
Ошибка: не удалось подключиться к порту 9050 127.0.0.1: подключение отклонено


person TheXReflex    schedule 09.07.2016    source источник


Ответы (2)


Браузер Tor по умолчанию использует порт 9150 для SOCKS, где по умолчанию для демона Tor в Linux или пакета Expert в Windows используется порт 9050.

Если вы перейдете на порт 9150, вы сможете успешно ретранслировать через Tor.

person drew010    schedule 10.07.2016

Из документов по php для curl_exec:

Возвращает TRUE в случае успеха или FALSE в случае неудачи. Однако, если установлена ​​опция CURLOPT_RETURNTRANSFER, она вернет результат в случае успеха и FALSE в случае неудачи.

Если curl_exec возвращает логическое значение false, произошла ошибка. Попробуйте получить ошибку:

$html = curl_exec($curl);
if ( $html === false ) {
   echo 'Error: ' . curl_error($curl);
}
person Goodbye StackExchange    schedule 09.07.2016
comment
Он возвращает эту ошибку: Ошибка: не удалось подключиться к порту 127.0.0.1 9050: соединение отклонено, что странно, так как браузер tor открыт - person TheXReflex; 09.07.2016
comment
Я предполагаю, что это машина Windows? - person Goodbye StackExchange; 09.07.2016
comment
На данный момент это не совсем вопрос, связанный с завитком, это вопрос, связанный с TOR. Я бы рассмотрел что-то вроде этого для идей: superuser.com/questions/303251/ Запустите netstat в Windows и убедитесь, что порт прослушивается. Убедитесь, что TOR не требует аутентификации (не совсем уверен в протоколе). - person Goodbye StackExchange; 09.07.2016