@kr_ilya

Failed to receive SOCKS5 connect request ack. При обращении к Telegram Bot API через cURL?

Обращаюсь к Telegram Bot API cURL'ом и бывают такие моменты, что он возвращает данную ошибку
Failed to receive SOCKS5 connect request ack.
На OpenServer данной проблемы нет.
Всё происходит на хостинге (hts) с пробным периодом.
Не могу понять в чем может быть проблема...
Вот код
function sendMessage($imgUrl, $text, $link){
	$ch = curl_init();
	$pr = array('u0k12.tgproxy.me', 'sr.spry.fail', 'sr123.spry.fail', 'd2a5e5.reconnect.rocks');
$x= 0;
$cnt = count($pr);
do{
//Проверяем доступность proxy
$host = $pr[$x]; 
$port = 1080; 
$waitTimeoutInSeconds = 1;
$x++; 
if($fp = fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)){   
   $a = 1; //если ping proxy меньше 1 секунды
} else {
   $a = 0;
} 
fclose($fp);
}while($a !== 1);
$user = 'TELEGRAM';
$pas = 'TELEGRAM';
if($host == 'd2a5e5.reconnect.rocks')
{$pas = '11a1fcc2';$user = '3559738';}

$proxy = $user.":".$pas."@".$host.":".$port;
$url = "https://api.telegram.org/botToken/sendMessage?chat_id=Chatid&parse_mode=Markdown&text=text;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, "socks5://".$proxy);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);

$err = curl_error($ch);
if (!empty($err))
return $err;

return $result;
}

p.s: Прокси взяты из общедоступного источника.
  • Вопрос задан
  • 1764 просмотра
Пригласить эксперта
Ответы на вопрос 1
@0ffff0
По моему глубокому убеждению,
вам нужно указать cURL, прокси - прокси SOCKS5, для вашего hts с пробным периодом, иначе cURL предполагает HTTP-прокси
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы