Dins la inicialització de libcurl existent de l'aplicació i el cicle de vida de l'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 envia el nom d'amfitrió de la destinació pel camí SOCKS. CURLPROXY_SOCKS5 en canvi el resol al client, que pot utilitzar la visió DNS d'una altra xarxa. Un client HTTP en C++ que utilitza libcurl no necessita el seu propi handshake SOCKS només per triar aquesta ruta. Per a un punt final públic permès, la llista de proxys SOCKS5 ofereix candidats d'amfitrió i port per substituir l'oient loopback il·lustratiu.

El valor buit de CURLOPT_NOPROXY fa que la prova de proxy sigui deliberada. Conserveu els desviaments previstos quan l'adapteu a la política normal de l'aplicació. Aquestes opcions afecten aquesta handle; altres biblioteques i sockets del procés no les hereten.

Comproveu els valors de retorn de la configuració d'opcions i de la transferència mitjançant la gestió d'errors de l'aplicació. Un error per assolir o negociar amb SOCKS pot produir-se abans de qualsevol resposta HTTP, de manera que no proporciona cap codi d'estat del lloc web.

Les credencials de proxy necessàries utilitzen la configuració d'autenticació de proxy admesa i el mecanisme de secrets, a part de l'inici de sessió del lloc web. Manteniu la verificació TLS activada: obrir una connexió a través de SOCKS no estableix la identitat del servei HTTPS.

Articles relacionats