我想通过代理使用php套接字。我使用以下代码创建套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, some_ip, 443);
并通过设置代理:
$aContext = array(
'http' => array(
'proxy' => 'tcp://191.96.x.xx:1212',
),
);
stream_context_set_default($aContext);
但当我使用跟踪路由测试它时,它不会通过代理。跟踪路线-https://www.adayinthelifeof.nl/2010/07/30/creating-a-traceroute-program-in-php/
我还尝试使用环境变量http_proxy=http://proxy.example.com:8080
,但id没有通过代理
stream_context_set_default
为文件操作(例如fopen
、file_get_contents
)设置默认上下文,但您正试图用socket_create
等执行套接字运算-两者非常不同。
如果您只想通过代理服务器通过HTTP下载文件,请在将默认上下文设置为使用代理后使用类似$data = file_get_contents("http://example.com/file");
的内容。
如果你需要使用原始套接字,你可以使用socket_create
等,但你需要提供更多关于你使用的代理类型以及你想用套接字实现什么的细节。