मैं PHP में curl का उपयोग कर एक टोर छिपी सेवा से कैसे कनेक्ट कर सकते हैं?




proxy tor (2)

इसे जोड़ने का प्रयास करें:

curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 

मैं निम्न PHP कोड का उपयोग कर टोर छिपी हुई सेवा से कनेक्ट करने का प्रयास कर रहा हूं:

$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);

जब मैं इसे चलाता हूं, तो मुझे निम्न त्रुटि मिलती है:

होस्ट नाम हल नहीं कर सका

हालांकि, जब मैं उबंटू में अपनी कमांड लाइन से निम्न आदेश चलाता हूं:

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

मुझे उम्मीद के रूप में एक प्रतिक्रिया मिलती है

PHP cURL दस्तावेज़ों में यह कहते हैं:

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

मेरा मानना ​​है कि यह कमांड लाइन से काम करने का कारण है क्योंकि टोर (प्रॉक्सी) .onion होस्टनाम को हल कर रहा है, जिसे यह पहचानता है। उपरोक्त PHP कोड चलाते समय, मेरा अनुमान है कि curl या PHP .onion होस्टनाम को हल करने का प्रयास कर रहा है और इसे पहचान नहीं पा रहा है। मैंने प्रॉक्सी को होस्टनाम को हल करने के लिए curl / PHP को बताने का एक तरीका खोजा है, लेकिन मुझे कोई रास्ता नहीं मिल रहा है।

एक बहुत ही समान स्टैक ओवरफ़्लो प्रश्न है, PHP का उपयोग करते समय socks5 प्रॉक्सी का उपयोग कर curl अनुरोध विफल रहता है, लेकिन यह कमांड लाइन के माध्यम से काम करता है


ऐसा लगता है कि CURLPROXY_SOCKS5_HOSTNAME को PHP में परिभाषित नहीं किया गया है, लेकिन आप स्पष्ट रूप से इसके मान का उपयोग कर सकते हैं, जो 7 के बराबर है:

curl_setopt($ch, CURLOPT_PROXYTYPE, 7);




tor