To perform a Guzzle request using a specific network interface in PHP, you can use the HttpHandlerStack
class from the Guzzle library in combination with the soupmix/handler-sockets
package.
First, install the necessary dependencies using Composer:
composer require guzzlehttp/guzzle
composer require soupmix/handler-sockets
Then, you can use the following code to perform a Guzzle request using a specific network interface:
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\SocksHandler;
$client = new Client([
'handler' => HandlerStack::create(new SocksHandler('socks://127.0.0.1:9050')),
'base_uri' => 'http://example.com',
]);
$response = $client->request('GET', '/some-endpoint');
echo $response->getBody();
In this example, we create a new Guzzle Client
instance and provide a custom handler
option. The custom handler is created using HandlerStack::create()
and passing the SocksHandler
with the SOCKS proxy address and port (socks://127.0.0.1:9050
). Adjust the proxy address and port accordingly.
Then, you can make the request using the request()
method of the client.
This setup allows you to perform a Guzzle request using a specific network interface in PHP.