Wie kann ich eine Verbindung zu einem Tor hidden service mit cURL in PHP?

Ich versuche, eine Verbindung zu einem Tor hidden service mit dem folgenden PHP-code:

$url = 'http://jhiwjjlqpyawmpjx.onion/'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
$output = curl_exec($ch);
$curl_error = curl_error($ch);
curl_close($ch);

print_r($output);
print_r($curl_error);

Wenn ich es laufen lasse, bekomme ich die folgende Fehlermeldung:

Konnte das nicht auflösen von host-Namen

Allerdings, wenn ich führen Sie den folgenden Befehl aus meiner Befehlszeile in Ubuntu:

curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion

Bekomme ich eine Antwort wie erwartet

PHP LOCKE Dokumentationen sagt:

--socks5-hostname
Use  the  specified  SOCKS5 proxy (and let the proxy resolve the host name).

Ich glaube, der Grund, warum es funktioniert von der Kommandozeile aus ist, weil Tor (proxy) ist eine Lösung der .Zwiebel hostname, die es erkennt. Beim ausführen der PHP-code oben, meine Vermutung ist, dass cURL oder PHP zu lösen versuchen .Zwiebel hostname und nicht erkennen. Ich habe nach einen Weg gesucht, um zu sagen, cURL/PHP zu lassen, die proxy auflösen des Hostnamen, aber ich kann nicht einen Weg finden.

Gibt es eine sehr ähnliche Stack Overflow Frage, cURL Anfrage über socks5 proxy schlägt fehl, wenn mit Hilfe von PHP, aber es funktioniert über die Befehlszeile.

InformationsquelleAutor der Frage frosty | 2013-03-16

Schreibe einen Kommentar