Налаштування дескриптора libcurl для розв'язання імені хоста через SOCKS5
Використовуйте CURLPROXY_SOCKS5_HOSTNAME на дескрипторі передавання, щоб розв'язувати призначення через проксі.
Усередині наявної ініціалізації libcurl програми та життєвого циклу 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 надсилає ім'я хоста призначення шляхом SOCKS. CURLPROXY_SOCKS5 натомість розв'язує його на клієнті, який може використовувати DNS-подання іншої мережі. HTTP-клієнту на C++ з libcurl не потрібне власне SOCKS-рукостискання лише для вибору цього маршруту. Для дозволеної публічної кінцевої точки, список проксі SOCKS5 пропонує кандидатів хоста й порту для заміни ілюстративного слухача loopback.
Порожнє CURLOPT_NOPROXY значення робить тест проксі навмисним. Зберігайте передбачені обходи під час адаптації до звичайної політики програми. Ці параметри впливають на цей дескриптор; інші бібліотеки й сокети в процесі їх не успадковують.
Перевіряйте значення, які повертають встановлення параметрів і передавання, через обробку помилок програми. Невдача досягти SOCKS або домовитися з ним може статися до будь-якої відповіді HTTP, тому вона не дає коду стану вебсайту.
Потрібні облікові дані проксі використовують підтримувані налаштування автентифікації проксі та механізм секретів окремо від входу на вебсайт. Залишайте перевірку TLS увімкненою: відкриття з'єднання через SOCKS не встановлює автентичність служби HTTPS.