Inne i et programs eksisterende libcurl-initialisering og easy-handle-livssyklus:

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 sender destinasjonens vertsnavn langs SOCKS-stien. CURLPROXY_SOCKS5 slår det i stedet opp på klienten, som kan bruke et annet nettverks DNS-visning. En C++ HTTP-klient som bruker libcurl trenger ikke sin egen SOCKS-håndtrykk bare for å velge denne ruten. For et tillatt offentlig endepunkt tilbyr SOCKS5-proxylisten vert- og portkandidater for å erstatte den illustrative loopback-lytteren.

Den tomme CURLOPT_NOPROXY verdien gjør proxy-testen bevisst. Behold tiltenkte omgåelser når du tilpasser den til normal applikasjonspolicy. Disse alternativene påvirker dette håndtaket; andre biblioteker og sockets i prosessen arver dem ikke.

Kontroller returverdier for innstilling av alternativer og overføring gjennom programmets feilhåndtering. Manglende evne til å nå eller forhandle med SOCKS kan skje før enhver HTTP-respons, så det gir ikke en nettstedstatuskode.

Påkrevde proxy-legitimasjoner bruker de støttede proxy-autentiseringsinnstillingene og hemmelighetsmekanismen, atskilt fra nettstedets pålogging. Hold TLS-verifisering aktivert: å åpne en tilkobling gjennom SOCKS fastslår ikke HTTPS-tjenestens identitet.

Relaterte artikler