PHP libcurl socks5无法正常工作

时间:2018-05-09 14:23:04

标签: php libcurl telegram-bot socks

我尝试使用libcurl连接到socks5代理,但是我收到了答案 SOCKS:身份验证失败。我还尝试通过带有cURL的Powershell脚本连接到代理服务器 - 它工作正常,因此代理服务器可用,我的登录名和密码是正确的。我尝试了很多解决方案......但是通过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 :(得分:0)

以下是其他有同样问题的完整答案。

//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);

希望有所帮助。