PHP libcurl socks5 не работает - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь подключиться к прокси socks5 с помощью libcurl, однако получаю ответ SOCKS: аутентификация не удалась . Я также попытался подключиться к прокси-серверу с помощью скрипта Powershell с помощью cURL - он работает, поэтому прокси-сервер доступен, и мои логин и пароль верны. Я перепробовал много решений ... Но соединение через PHP-скрипт все равно не работает.

Версия PHP - 5.4, версия cURL - 7.19. Что я могу сделать?

[ОБНОВЛЕНИЕ] Вот мой текущий код. Я хочу отправить сообщение с моим ботом Telegram:)

    $proxy = '<hostname>:<port>';
    $proxy_auth = '<username>:<password>';

    $url = 'https://api.telegram.org/bot<botID>/sendMessage?'.'chat_id='.$chat_id.'&parse_mode='.$parse_mode.'&text='.'test';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_auth);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, true);
    $curl_scraped_page = curl_exec($ch);
    $error = curl_error($ch);
    echo $error;
    echo $curl_scraped_page;
    curl_close($ch);

1 Ответ

0 голосов
/ 09 мая 2018

Вот полный ответ для тех, у кого есть такая же проблема.

//Curl setup
$url = "https://google.com";
$proxy = "10.23.2.2:8080";
$password = "username:secret_passowrd";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_HEADER, true);

//proxy's address
curl_setopt($ch, CURLOPT_PROXY, $proxy);
//proxy's password
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $password);

//in order to follow redirects.
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//in order to use the result of the query
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//run query
$curl_scraped_page = curl_exec($ch);
$error = curl_error($ch);
echo $error;
echo $curl_scraped_page;
curl_close($ch);

Надеюсь, это поможет.

...