Mengonfigurasi handle libcurl untuk resolusi nama host SOCKS5
Gunakan CURLPROXY_SOCKS5_HOSTNAME pada handle transfer untuk menyelesaikan tujuan melalui proxy.
Di dalam inisialisasi libcurl aplikasi yang sudah ada dan siklus hidup 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 mengirim nama host tujuan melalui jalur SOCKS. CURLPROXY_SOCKS5 sebaliknya menyelesaikannya di klien, yang dapat memakai tampilan DNS jaringan lain. Klien HTTP C++ yang memakai libcurl tidak perlu melakukan handshake SOCKS sendiri hanya untuk memilih rute ini. Untuk endpoint publik yang diizinkan, daftar proxy SOCKS5 menawarkan kandidat host dan port untuk menggantikan pendengar loopback ilustratif.
Nilai CURLOPT_NOPROXY kosong membuat uji proxy disengaja. Pertahankan pengecualian yang dimaksudkan saat menyesuaikannya dengan kebijakan aplikasi normal. Opsi ini memengaruhi handle ini; pustaka dan soket lain dalam proses tidak mewarisinya.
Periksa nilai kembalian pengaturan opsi dan transfer melalui penanganan kesalahan aplikasi. Kegagalan menjangkau atau bernegosiasi dengan SOCKS dapat terjadi sebelum respons HTTP apa pun, jadi tidak memberikan kode status situs web.
Kredensial proxy yang diperlukan memakai pengaturan autentikasi proxy yang didukung dan mekanisme rahasia, terpisah dari login situs web. Biarkan verifikasi TLS aktif: membuka koneksi melalui SOCKS tidak menetapkan identitas layanan HTTPS.