私は完全に失望しています。私はsslサーバーに接続しており、直接接続はうまく機能していますが、プロキシまたはsocks5を使用するためにストリームコンテキストを追加しようとすると、ソケットはそれを使用せず、とにかくこれらのssl://サーバーにかなりうまく直接接続します. 127.0.0.1 プロキシ サーバーのログを見て確認しています - 接続試行すらありませんでした。また、socks5:// http プロキシ オプションを使用して、socks5 サーバーにストリームをラップできますか?
$ctx = stream_context_create( array(
"http" => array(
"timeout" => 15,
"proxy" => "tcp://127.0.0.1:3128",
"request_fulluri" => TRUE,
),
"ssl" => array(
"SNI_enabled" => FALSE,
)
) );
try
{
$socket = stream_socket_client( "ssl://google.com:443",
$errno, $errstr, 15, STREAM_CLIENT_CONNECT, $ctx );
}
catch ( Exception $e )
{
die( $e->getMessage() );
}
if ( $socket === FALSE )
{
echo "bad socket";
}
fwrite( $socket, "GET /\n" );
echo fread( $socket, 8192 );
// Here I am connected DIRECTLY, not thru proxy. WHY ???
// But this call succesfully uses context
echo file_get_contents("https://google.com", 0, $ctx);