Konfigurasikan pemegang libcurl untuk penyelesaian nama hos SOCKS5
Gunakan CURLPROXY_SOCKS5_HOSTNAME pada pemegang pemindahan untuk menyelesaikan destinasi melalui proksi.
Dalam penginisialisasian libcurl sedia ada aplikasi dan kitaran hayat 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 menghantar nama hos destinasi melalui laluan SOCKS. CURLPROXY_SOCKS5 sebaliknya menyelesaikannya pada klien, yang boleh menggunakan paparan DNS rangkaian lain. Klien HTTP C++ yang menggunakan libcurl tidak memerlukan jabat tangan SOCKS sendiri semata-mata untuk memilih laluan ini. Untuk titik akhir awam yang dibenarkan, senarai proksi SOCKS5 menawarkan calon hos dan port untuk menggantikan pendengar loopback ilustratif.
Nilai CURLOPT_NOPROXY kosong menjadikan ujian proksi itu disengajakan. Kekalkan pintasan yang dimaksudkan apabila menyesuaikannya dengan dasar aplikasi biasa. Pilihan ini mempengaruhi pemegang ini; pustaka dan soket lain dalam proses tidak mewarisinya.
Semak nilai pulangan penetapan pilihan dan pemindahan melalui pengendalian ralat aplikasi. Kegagalan mencapai atau berunding dengan SOCKS boleh berlaku sebelum sebarang respons HTTP, jadi ia tidak memberikan kod status laman web.
Kelayakan proksi yang diperlukan menggunakan tetapan pengesahan proksi yang disokong dan mekanisme rahsia, berasingan daripada log masuk laman web. Biarkan pengesahan TLS dihidupkan: membuka sambungan melalui SOCKS tidak menetapkan identiti perkhidmatan HTTPS.