libcurl rankenos konfigūravimas SOCKS5 mazgo vardo sprendimui
Naudokite CURLPROXY_SOCKS5_HOSTNAME perdavimo rankenoje, kad paskirties vieta būtų sprendžiama per tarpinį serverį.
Programos esamo libcurl inicijavimo ir easy-handle gyvavimo ciklo viduje:
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 siunčia paskirties mazgo vardą SOCKS keliu. CURLPROXY_SOCKS5 vietoj to išsprendžia jį kliente, kuris gali naudoti kito tinklo DNS vaizdą. C++ HTTP klientui, naudojančiam libcurl, nereikia savo SOCKS rankos paspaudimo vien tam, kad pasirinktų šį maršrutą. Leidžiamam viešam galiniam taškui SOCKS5 tarpinių serverių sąrašas siūlo mazgo ir prievado kandidatus, pakeisiančius iliustracinį loopback klausytoją.
Tuščia CURLOPT_NOPROXY reikšmė daro tarpinio serverio testą tyčiniu. Išsaugokite numatytus apėjimus, kai pritaikote jį įprastai programos politikai. Šios parinktys paveikia šią rankeną; kitos proceso bibliotekos ir lizdai jų nepaveldi.
Tikrinkite parinkčių nustatymo ir perdavimo grąžinamas reikšmes per programos klaidų apdorojimą. Nesugebėjimas pasiekti SOCKS ar su juo derėtis gali įvykti prieš bet kokį HTTP atsakymą, todėl jis nepateikia svetainės būsenos kodo.
Reikalingi tarpinio serverio kredencialai naudoja palaikomas tarpinio serverio autentifikavimo nuostatas ir slaptumo mechanizmą, atskirai nuo svetainės prisijungimo. Palikite TLS tikrinimą įjungtą: ryšio atidarymas per SOCKS nenustato HTTPS paslaugos tapatybės.