libcurl-kahvan määrittäminen SOCKS5-isäntänimen ratkaisuun
Käytä CURLPROXY_SOCKS5_HOSTNAME-arvoa siirtokahvassa, jotta kohde ratkaistaan välityspalvelimen kautta.
Sovelluksen olemassa olevan libcurl-alustuksen ja easy-handlen elinkaaren sisällä:
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 lähettää kohteen isäntänimen SOCKS-polkua pitkin. CURLPROXY_SOCKS5 ratkaisee sen sen sijaan asiakkaassa, joka voi käyttää toisen verkon DNS-näkymää. libcurlia käyttävä C++-HTTP-asiakas ei tarvitse omaa SOCKS-kättelyä vain tämän reitin valitsemiseksi. Sallitulle julkiselle päätepisteelle SOCKS5-välityspalvelinluettelo tarjoaa isäntä- ja porttiehdokkaita havainnollistavan loopback-kuuntelijan korvaamiseksi.
Tyhjä CURLOPT_NOPROXY arvo tekee välityspalvelintestistä tarkoituksellisen. Säilytä aiotut ohitukset, kun sovitat sen sovelluksen normaaliin käytäntöön. Nämä asetukset vaikuttavat tähän kahvaan; muut prosessin kirjastot ja pistokkeet eivät peri niitä.
Tarkista asetusten asettamisen ja siirron paluuarvot sovelluksen virheenkäsittelyn kautta. SOCKSin saavuttamisen tai sen kanssa neuvottelemisen epäonnistuminen voi tapahtua ennen mitä tahansa HTTP-vastausta, joten se ei anna verkkosivuston tilakoodia.
Tarvittavat välityspalvelintunnukset käyttävät tuettuja välityspalvelimen todennusasetuksia ja salaisuusmekanismia erillään verkkosivuston kirjautumisesta. Pidä TLS-varmennus käytössä: yhteyden avaaminen SOCKSin kautta ei vahvista HTTPS-palvelun identiteettiä.