Le personnel Remarque: Cette question et les réponses associées ont été verrouillé pour empêcher la discussion hors sujet entourant un événement d'actualité qui est liée à la question à portée de main. Des Questions au sujet de cet événement peuvent être trouvés sur notre méta site. Merci!!!!
Je suis en train d'essayer de vous connecter à un service caché tor en utilisant le php suivant:
$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);
quand je le lance j'obtiens l'erreur suivante:
Couldn't resolve host name
Cependant, lorsque je lance la commande suivante à partir de ma ligne de commande sous ubuntu:
curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion
Je reçois une réponse comme prévu
le php cURL documentations dit ceci:
--socks5-hostname Use the specified SOCKS5 proxy (and let the proxy resolve the host name).
Je crois que la raison pour laquelle il travaille à partir de la ligne de commande est parce que Tor (le proxy) est la résolution de la .l'oignon nom d'hôte, dont il reconnaît. Lors de l'exécution du php ci-dessus, je suppose que cURL ou php est en essayant de résoudre l' .l'oignon nom d'hôte et ne pas le reconnaître. J'ai cherché un moyen de dire cURL/php pour laisser le proxy de résoudre le nom d'hôte, mais ne peut pas trouver un moyen.
Il y a une question très semblable ici: CURL demande à l'aide du proxy socks5 échoue lors de l'utilisation de PHP mais fonctionne par le biais de la ligne de commande
Réponses
Trop de publicités?
dr.scre
Points
637
FattyPotatoes
Points
156
Je utiliser privoxy et curl à gratter TOR pages
<?php
$ch = curl_init('http://jhiwjjlqpyawmpjx.onion'); // tormail url
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, "localhost:8118"); // default privoxy port
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_exec($ch);
curl_close($ch);
?>
Après l'installation de privoxy, vous devez ajouter cette ligne dans le fichier de configuration (/etc/privoxy/config). Remarque l'espace et '.' a la fin de la ligne.
forward-socks4a / localhost:9050 .
Redémarrez privoxy.
/etc/init.d/privoxy restart
Anthony Garcia
Points
603