Binnen de bestaande libcurl-initialisatie van een applicatie en de levenscyclus van een 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 stuurt de hostnaam van de bestemming langs het SOCKS-pad. CURLPROXY_SOCKS5 lost deze in plaats daarvan op de client op, die de DNS-weergave van een ander netwerk kan gebruiken. Een C++ HTTP-client die libcurl gebruikt, heeft geen eigen SOCKS-handshake nodig alleen om deze route te kiezen. Voor een toegestaan openbaar eindpunt biedt de SOCKS5-proxylijst host- en poortkandidaten om de illustratieve loopback-listener te vervangen.

De lege CURLOPT_NOPROXY waarde maakt de proxytest bewust. Behoud bedoelde omzeilingen bij het aanpassen aan het normale applicatiebeleid. Deze opties beïnvloeden deze handle; andere bibliotheken en sockets in het proces erven ze niet.

Controleer de retourwaarden van het instellen van opties en de overdracht via de foutafhandeling van de applicatie. Het niet bereiken of onderhandelen met SOCKS kan vóór enige HTTP-respons optreden, dus het levert geen websitestatuscode op.

Vereiste proxyreferenties gebruiken de ondersteunde proxy-authenticatie-instellingen en het geheimenmechanisme, los van de login van de website. Houd TLS-verificatie ingeschakeld: een verbinding via SOCKS openen stelt de identiteit van de HTTPS-dienst niet vast.

Gerelateerde artikelen