Rakenduse olemasoleva libcurl-i lähtestamise ja easy-handle'i elutsükli sees:

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 saadab sihtkoha hostinime mööda SOCKS-teed. CURLPROXY_SOCKS5 selle asemel lahendab selle kliendis, mis võib kasutada teise võrgu DNS-vaadet. libcurl-i kasutav C++ HTTP-klient ei vaja selle marsruudi valimiseks oma SOCKS-kätlust. Lubatud avaliku lõpp-punkti jaoks pakub SOCKS5-proksiserverite loend hosti- ja pordikandidaate, mis asendavad näitliku loopback-kuulaja.

Tühi CURLOPT_NOPROXY väärtus muudab proksitesti tahtlikuks. Säilitage kavandatud möödasõidud, kui kohandate seda rakenduse tavapärase poliitikaga. Need valikud mõjutavad seda käepidet; teised protsessis olevad teegid ja soklid neid ei päri.

Kontrollige valikute seadmise ja edastuse tagastusväärtusi rakenduse veakäsitluse kaudu. SOCKS-ile jõudmise või sellega läbirääkimise ebaõnnestumine võib toimuda enne mis tahes HTTP-vastust, seega ei anna see veebisaidi olekukoodi.

Nõutavad proksiserveri mandaadid kasutavad toetatud proksiserveri autentimisseadeid ja saladuste mehhanismi, eraldi veebisaidi sisselogimisest. Hoidke TLS-i kontroll sees: SOCKS-i kaudu ühenduse avamine ei tõenda HTTPS-teenuse identiteeti.

Seotud artiklid