Uygulamanın mevcut libcurl başlatması ve easy-handle yaşam döngüsü içinde:

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 hedefin ana makine adını SOCKS yolu boyunca gönderir. CURLPROXY_SOCKS5 bunun yerine istemcide çözer, bu da başka bir ağın DNS görünümünü kullanabilir. libcurl kullanan bir C++ HTTP istemcisinin yalnızca bu yolu seçmek için kendi SOCKS el sıkışmasına ihtiyacı yoktur. İzin verilen bir genel uç nokta için, SOCKS5 proxy listesi örnek loopback dinleyicisinin yerine ana makine ve bağlantı noktası adayları sunar.

Boş CURLOPT_NOPROXY değer proxy testini bilinçli hale getirir. Normal uygulama ilkesine uyarlarken amaçlanan atlamaları koruyun. Bu seçenekler bu tanıtıcıyı etkiler; süreçteki diğer kitaplıklar ve yuvalar bunları devralmaz.

Seçenek ayarlama ve aktarım dönüş değerlerini uygulamanın hata işleme mekanizmasıyla denetleyin. SOCKS'e ulaşma veya onunla anlaşma başarısızlığı herhangi bir HTTP yanıtından önce gerçekleşebilir, bu nedenle bir web sitesi durum kodu sağlamaz.

Gerekli proxy kimlik bilgileri, web sitesinin oturum açmasından ayrı olarak desteklenen proxy kimlik doğrulama ayarlarını ve gizli mekanizmayı kullanır. TLS doğrulamasını açık tutun: SOCKS üzerinden bağlantı açmak HTTPS hizmetinin kimliğini kanıtlamaz.

İlgili makaleler