Через выбранный internal-интерфейс
<?php
$opts = array(
'socket' => array(
'bindto' => '10.10.1.1:0',
)
);
$context = stream_context_create($opts);
$file = file_get_contents("https://site.com/", false, $context);
http-прокси с авторизацией
<?php
$auth = base64_encode('LOGIN:PASSWORD');
$aContext = array(
'http' => array(
'proxy' => 'tcp://192.168.0.2:3128',
'request_fulluri' => true,
'header' => "Proxy-Authorization: Basic $auth",
),
);
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("http://www.google.com", False, $cxContext);
echo $sFile;
Материалы для изучения
https://www.php.net/manual/en/context.php
https://www.php.net/manual/en/ref.stream.php