Я пытаюсь заставить stream_socket_client работать с прокси-сервером.
Код мира:
<?php
$context = stream_context_create(['http' => ['proxy' => '147.135.210.114:54566', 'request_fulluri' => true]]);
//$file = file_get_contents("http://www.google.com", false, $context);
$fp = stream_socket_client("tcp://www.google.com:80", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fputs($fp, "GET / HTTP/1.0\r\nHost: www.google.com\r\nAccept: */*\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
}
?>
Несмотря на то, что file_get_contents использует прокси (tcpdump -i any -A host 114.ip-147-135-210.eu), stream_socket_client просто пропускает его и переходит непосредственно на google.com. Что я делаю неправильно? Моя конечная цель — подключиться к RabbitMQ (протокол AMQP) через прокси, но я не могу даже заставить работать простое соединение HTTP.
Задача ещё не решена.
Других решений пока нет …