Gdy świadomie wybierasz program obsługi klienta Guzzle, stos oparty na cURL może korzystać z SOCKS:

$stack = \GuzzleHttp\HandlerStack::create(
    new \GuzzleHttp\Handler\CurlHandler()
);

$client = new \GuzzleHttp\Client([
    'handler' => $stack,
    'proxy' => 'socks5h://proxy.example.net:1080',
]);

socks5h prosi proxy o rozwiązanie nazwy celu. Guzzle przekazuje punkt końcowy do libcurl, więc wczytana kompilacja libcurl musi obsługiwać ten protokół. Lista proxy SOCKS5 dostarcza publiczne kandydatów punktów końcowych dla adresu URL proxy klienta.

Jeśli aplikacja ma już stos programów obsługi, sprawdź jego transport bazowy, zanim go zastąpisz i utracisz oprogramowanie pośredniczące. Program obsługi ograniczony do strumieni HTTP PHP nie może zaimplementować SOCKS tylko dlatego, że klient otrzymuje tę opcję.

Sprawdź proces wykonujący żądanie. CLI PHP i PHP-FPM mogą ładować różne pliki konfiguracyjne i rozszerzenia; obecność cURL w jednym nie dowodzi jego dostępności w drugim.

Powiązane artykuły