Aşağıdaki PHP kodunu kullanarak Tor gizli bir hizmete bağlanmaya çalışıyorum:
$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);
Çalıştırdığımda, aşağıdaki hatayı alıyorum:
Ana bilgisayar adı çözülemedi
Ancak, Ubuntu'daki komut satırımdan aşağıdaki komutu çalıştırdığımda:
curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion
Beklendiği gibi bir yanıt alıyorum
PHP cURL belgeleri şöyle diyor:
--socks5-hostname
Use the specified SOCKS5 proxy (and let the proxy resolve the host name).
Komut satırından çalışmasının nedeninin Tor'un (proxy) tanıdığı .onion ana bilgisayar adını çözmesi nedeniyle olduğuna inanıyorum. Yukarıdaki PHP kodunu çalıştırırken, tahminim cURL veya PHP'nin .onion ana bilgisayar adını çözmeye çalıştığı ve tanımıyor olmasıdır. Proxy ana bilgisayar adını çözmek için cURL / PHP anlatmak için bir yol aradım, ama bir yol bulamıyorum.
Çok benzer bir Stack Overflow sorusu var, PHP kullanırken socks5 proxy kullanan cURL isteği başarısız oluyor, ancak komut satırı üzerinden çalışıyor .
forward-socks5 / localhost:9150 .