PHP не может пройти проверку подлинности с помощью прокси-сервера даже с помощью «Proxy-Authorization: Basic»

У меня было много проблем с подключением сетевого прокси. Я уже попробовал несколько установок, но ни одна из них не сработала. Самый близкий из них возвратил ошибку «HTTP / 1.1 407 Proxy Authentication Required [Proxy-Authenticate]», хотя я уже проходил аутентификацию.

Вот код, который я использую:

<?php

// Edit the four values below
$PROXY_HOST = "proxy.det.nsw.edu.au"; // Proxy server address
$PROXY_PORT = "8080";    // Proxy server port
$PROXY_USER = "USERNAME";    // Username
$PROXY_PASS = "PASSWORD";   // Password
// Username and Password are required only if your proxy server needs basic authentication


$auth = base64_encode("$PROXY_USER:$PROXY_PASS");

stream_context_set_default(
array(
'http' => array(
'proxy' => "tcp://$PROXY_HOST:$PROXY_PORT",
'request_fulluri' => true,
'header' => "Proxy-Authorization: Basic $auth"// Remove the 'header' option if proxy authentication is not required
)
)
);



$targetURL = "http://stackoverflow.com/questions/17111112/using-get-headers-with-a-proxy";
print_r(get_headers($targetURL, 1));
echo ("<br><br>");

$result = file_get_contents($targetURL);
?>

А вот и возврат с прокси:

Array ([0] => HTTP / 1.1 Требуется 407 прокси-аутентификация
[Proxy-Authenticate] => Array ([0] => NEGOTIATE [1] => NTLM)
[Cache-Control] => no-cache [Pragma] => no-cache [Content-Type] =>
текст / html; charset = utf-8 [Proxy-Connection] => закрыть [Set-Cookie] =>
BCSI-CS-47afdfff6410962d = 2; Путь = / [Соединение] => закрыть
[Content-Length] => 653)

Предупреждение:
file_get_contents (http://stackoverflow.com/questions/17111112/using-get-headers-with-a-proxy):
не удалось открыть поток: HTTP-запрос не выполнен! HTTP / 1.1 407 прокси
Требуется аутентификация в C: \ inetpub \ wwwroot \ sites \ phpProxyTest.php
на линии 36

Если это помогает, я пытаюсь аутентифицировать пользователей по прокси-серверу, чтобы увидеть, являются ли они действительным пользователем, поэтому мне нужен только ответ Да / Нет от прокси-сервера для этого. К сожалению, у меня нет доступа к учетной записи администратора или другим частям прокси-сервера, поэтому прямой доступ к пользователям невозможен. Буду признателен за любую помощь, и, пожалуйста, спросите, если вам нужна дополнительная информация.

0

Решение

проверка подлинности в HTTP для прокси-сервера регулируется конфигурацией прокси-сервера.

В вашем случае прокси — это только рекламная поддержка NEGOTIATE и NTLM, поэтому отправка Basic не будет принята.

Также вы говорите, что вы «уже аутентифицированы», но это не ваш звонок. Если вы ранее проходили аутентификацию на прокси-сервере (например, с помощью веб-браузера), он может считать вас аутентифицированным или может потребоваться аутентификация каждого соединения с прокси-сервером.

вам нужно будет использовать NTLM или NEGOTIATE, чтобы пройти этот прокси.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]