URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6167
[ Назад ]

Исходное сообщение
"Проблема: libCURL и прокси"

Отправлено JazzCat , 12-Фев-07 05:41 
неправильно работает простейшая, на мой взгляд, программа

#include <stdio.h>
#include <curl/curl.h>

int main(int argc, char* argv[])
{
     CURL* curl;
     char url[] = "some_host";
     char proxy[] = "some_proxy_ip";
     long port = [some_port];
     char error[200];

     curl_global_init(CURL_GLOBAL_ALL);
     curl = curl_easy_init();

     curl_easy_setopt(curl, CURLOPT_URL, url);
     curl_easy_setopt(curl, CURLOPT_PROXY, proxy);
     curl_easy_setopt(curl, CURLOPT_PROXYPORT, port);
     curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
     curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
     curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
     curl_easy_setopt(curl, CURLOPT_HEADER, 1);

     printf("\nTrying proxy [%s:%d]:\n", proxy, port);

     if (curl_easy_perform(curl))
          printf("Cannot perform\nError:%s\n", error);

     return 0;
}

я не нашёл ни одного прокси, который бы либо не вешал программу(до некотороо момента, естественно, когда curl обрывает зависшее соединение), либо не присылал код 404 - север не найден. списки проксей свежие и по идее рабочие

так
#include <stdio.h>
#include <curl/curl.h>

int main(int argc, char* argv[])
{
     CURL* curl;
     char url[] = "jazzcat.smartdesign.by";
     char proxy[] = "84.17.235.10";
     long port = 4241;
     char error[200];


     curl_global_init(CURL_GLOBAL_ALL);
     curl = curl_easy_init();

     curl_easy_setopt(curl, CURLOPT_URL, url);
     //curl_easy_setopt(curl, CURLOPT_PROXY, proxy);
     curl_easy_setopt(curl, CURLOPT_PROXYPORT, port);
     curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
     curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
     curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
     curl_easy_setopt(curl, CURLOPT_HEADER, 1);

     printf("\nTrying proxy [%s:%d]:\n", proxy, port);

     if (curl_easy_perform(curl))
          printf("Cannot perform\nError:%s\n", error);

     return 0;
}
всё работает. подскажите, пожалуйста, что я делаю не так? или это всё-таки плохие списки проксей? спасибо


Содержание

Сообщения в этом обсуждении
"Проблема: libCURL и прокси"
Отправлено DeadMustdie , 12-Фев-07 11:38 
Попробуйте проксюк задать в формате http://<имя>:<порт>

"Проблема: libCURL и прокси"
Отправлено BsDr , 12-Фев-07 17:36 
На PHP я делаю просто:
curl_setopt($ch, CURLOPT_PROXY, 'ip:port');
Одной строчкой и все работает!
И ip и port прописаны сразу.
curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); // CURLPROXY_HTTP (default)
его не надо!

А вообще все бесплатные прокси живут очень не долго!
Надо либо платные искать либо через tor если нужна анонимность.


"Проблема: libCURL и прокси"
Отправлено JazzCat , 12-Фев-07 19:34 
Дело в том, что я старался написать в этом случае именно что-нибудь простейшее, если задавать прокси как "http://proxy_ip:proxy_port" и больше ничего (крому CURLOP_URL, конечно) - как в основном проекте, то всё не работает точно также. прокси свежие и проверенные, только-только с прокси-чекера

"Проблема: libCURL и прокси"
Отправлено JazzCat , 14-Фев-07 06:14 
Проблема решилась сама собой. Прокси сервера оказались не http а socks, точнее, давались они как http, но алгоритм проверки чекера оказался не совсем правильным.

Прошу прощения у всех, кто потратил своё время. =)