Ndani ya uanzishaji uliopo wa libcurl wa programu na mzunguko wa maisha wa 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 hutuma jina la mwenyeji wa lengwa kwenye njia ya SOCKS. CURLPROXY_SOCKS5 badala yake hulitatua kwenye mteja, ambaye anaweza kutumia mwonekano wa DNS wa mtandao mwingine. Mteja wa HTTP wa C++ anayetumia libcurl hahitaji handshake yake ya SOCKS ili kuchagua njia hii pekee. Kwa sehemu ya mwisho ya umma inayoruhusiwa, orodha ya proksi za SOCKS5 hutoa wagombea wa mwenyeji na bandari kuchukua nafasi ya msikilizaji wa loopback wa mfano.

Thamani CURLOPT_NOPROXY tupu hufanya jaribio la proksi kuwa la makusudi. Hifadhi njia za kupita zilizokusudiwa unapoiweka kulingana na sera ya kawaida ya programu. Chaguo hizi huathiri handle hii; maktaba na soketi zingine kwenye mchakato hazizirithi.

Angalia thamani za kurudi za kuweka chaguo na uhamishaji kupitia ushughulikiaji wa makosa wa programu. Kushindwa kufikia SOCKS au kujadiliana nayo kunaweza kutokea kabla ya jibu lolote la HTTP, kwa hivyo hakitoi msimbo wa hali ya tovuti.

Vitambulisho vinavyohitajika vya proksi hutumia mipangilio inayotumika ya uthibitishaji wa proksi na utaratibu wa siri, tofauti na kuingia kwenye tovuti. Weka uthibitishaji wa TLS ukiwa umewashwa: kufungua muunganisho kupitia SOCKS hakuweki utambulisho wa huduma ya HTTPS.

Makala zinazohusiana