Унутры існуючай ініцыялізацыі libcurl у праграме і жыццёвага цыкла easy-handle:

curl_easy_setopt(handle, CURLOPT_URL, "https://example.com/");
curl_easy_setopt(handle, CURLOPT_PROXY, "127.0.0.1:1080");
curl_easy_setopt(handle, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_easy_setopt(handle, CURLOPT_NOPROXY, "");
curl_easy_setopt(handle, CURLOPT_CONNECTTIMEOUT, 5L);
curl_easy_setopt(handle, CURLOPT_TIMEOUT, 15L);

CURLPROXY_SOCKS5_HOSTNAME адпраўляе імя хоста прызначэння па шляху SOCKS. CURLPROXY_SOCKS5 замест гэтага развязвае яго на кліенце, які можа выкарыстоўваць іншы погляд DNS іншай сеткі. HTTP-кліент на C++, які выкарыстоўвае libcurl, не мае патрэбы ва ўласным рукапацісканні SOCKS толькі дзеля выбару гэтага маршруту. Для дазволенай публічнай канчатковай кропкі, спіс проксі SOCKS5 прапануе кандыдатаў хоста і порта для замены ілюстрацыйнага слухача loopback.

Пустое CURLOPT_NOPROXY значэнне робіць тэст проксі наўмысным. Захоўвайце прадугледжаныя абыходы пры адаптацыі да звычайнай палітыкі праграмы. Гэтыя параметры ўплываюць на гэтую ручку; іншыя бібліятэкі і сокеты ў працэсе іх не атрымліваюць.

Правярайце вяртаемыя значэнні ўсталявання параметраў і перадачы праз апрацоўку памылак праграмы. Немагчымасць дасягнуць SOCKS або дамовіцца з ім можа ўзнікнуць перад любым адказам HTTP, таму гэта не дае кода стану вэб-сайта.

Патрэбныя ўліковыя даныя проксі выкарыстоўваюць падтрымліваныя налады аўтэнтыфікацыі проксі і механізм сакрэтаў асобна ад уваходу на вэб-сайт. Трымайце праверку TLS уключанай: адкрыццё злучэння праз SOCKS не ўсталёўвае асобу службы HTTPS.

Падобныя артыкулы