Az alkalmazás meglévő libcurl-inicializálásán és az easy-handle életciklusán belül:

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 a cél hosztnevét a SOCKS útvonalon küldi el. CURLPROXY_SOCKS5 helyette a kliensen oldja fel, amely egy másik hálózat DNS-nézetét használhatja. A libcurl-t használó C++ HTTP-kliensnek nem kell saját SOCKS-kézfogást végeznie csak azért, hogy ezt az útvonalat válassza. Egy engedélyezett nyilvános végpont esetén a SOCKS5-proxylista host- és portjelölteket kínál a szemléltető loopback-figyelő helyett.

Az üres CURLOPT_NOPROXY érték szándékossá teszi a proxy tesztjét. Őrizze meg a szándékolt megkerüléseket, amikor az alkalmazás normál szabályzatához igazítja. Ezek a beállítások erre a handle-re hatnak; a folyamat többi könyvtára és socketje nem örökli őket.

Ellenőrizze a beállítások megadásának és az átvitelnek a visszatérési értékeit az alkalmazás hibakezelésén keresztül. A SOCKS elérésének vagy a vele való egyeztetésnek a kudarca bármely HTTP-válasz előtt megtörténhet, ezért nem ad webhely-állapotkódot.

A szükséges proxy-hitelesítő adatok a támogatott proxy-hitelesítési beállításokat és a titokmechanizmust használják, a webhely bejelentkezésétől elkülönítve. Tartsa bekapcsolva a TLS-ellenőrzést: a SOCKS-on keresztüli kapcsolat megnyitása nem igazolja a HTTPS-szolgáltatás identitását.

Kapcsolódó cikkek