Szukałem w internecie i nie mogłem znaleźć nic o stream_context_set_default() z chronione hasłem serwera proxy.
Wtedy pomyślałem, że hasło w podstawowej autoryzacji jest wysyłane w nagłówkach. Więc zmodyfikowałem nagłówki hasłem wyodrębnionym z żądania CURL i działało idealnie !!!
Oto jak to zrobić:
Pierwszy wysłać zapytanie do dowolnej domeny (example.com), jak poniżej:
curl -v -U user:pass -x your_proxy_ip:port --url https://example.com
Zobacz curl wysłane nagłówki i mam te linie proxy do późniejszego użycia:
> Trying XXX.XXX.XXX.XXX...
> Connected to XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) port YYYY (#0)
> Establish HTTP proxy tunnel to example.com:443
> Proxy auth using Basic with user 'your_username_here'
> CONNECT example.com:443 HTTP/1.1
> Host: example.com:443
> Proxy-Authorization: Basic YW1hem9uOnXXXXXXXXXXXXXXX25SMg
> User-Agent: curl/7.47.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
< Proxy replied OK to CONNECT request
OK teraz nadszedł czas, aby zbudować nasz własny nagłówek:
$default_opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Proxy-Authorization: Basic YW1hem9uOnXXXXXXXXXXXXXXX25SMg\r\n" .
"Proxy-Connection: Keep-Alive",
'proxy'=>"XXX.XXX.XXX.XXX:YYYY"
)
);
$default = stream_context_set_default($default_opts);
$result = file_get_contents("https://ipleak.net/json/");
print_r(json_decode($result));
I działa idealnie, otrzymasz adres IP swojego serwera proxy w odpowiedzi!
dzięki za odpowiedź. ale zastanówcie się, czy to może być zastosowane tylko dla moich własnych kodów. a co z innymi aplikacjami PHP, takimi jak Drupal? Potrzebuję samego PHP, aby połączyć się z Proxy, nie za pomocą kodu. – Alexar