我正在尝试使用以下PHP代码连接到Tor隐藏服务:
$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);
当我运行它时,我收到以下错误:
Couldn\'t resolve host name
但是,当我从Ubuntu中的命令行运行以下命令时:
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).
我相信它从命令行工作的原因是因为Tor(代理)正在解析它识别的.onion主机名。在运行上面的PHP代码时,我的猜测是cURL或PHP正在尝试解析.onion主机名并且无法识别它。我已经搜索了一种告诉cURL / PHP让代理解析主机名的方法,但我找不到办法。
看起来CURLPROXY_SOCKS5_HOSTNAME没有在PHP中定义,但您可以显式使用其值,它等于7:
curl_setopt($ch, CURLOPT_PROXYTYPE, 7); 继续阅读与本文标签相同的文章
-
源码分析Dubbo前置篇-寻找注册中心、服务提供者、服务消费者功能入口
2026-05-17栏目: 教程
-
SAML在云上的应用——基础篇
2026-05-17栏目: 教程
-
云服务OpenAPI的7大挑战,架构师如何应对?
2026-05-17栏目: 教程
-
什么是阿里云备案服务号及相关疑问解答 要网站备案的朋友必看!
2026-05-17栏目: 教程
-
《DNS稳定保障系列1--服务双保障“辅助DNS”产品介绍》
2026-05-17栏目: 教程
