Конфигурисање 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 поглед друге мреже. C++ HTTP клијенту који користи libcurl није потребно сопствено SOCKS руковање само да би изабрао ову путању. За дозвољену јавну крајњу тачку, листа SOCKS5 проксија нуди кандидате за хоста и порт који замењују илустративни loopback слушалац.
Празна CURLOPT_NOPROXY вредност чини тест проксија намерним. Сачувајте предвиђена заобилажења када га прилагођавате нормалној политици апликације. Ове опције утичу на ову ручку; друге библиотеке и сокети у процесу их не наслеђују.
Проверите повратне вредности подешавања опција и преноса кроз обраду грешака апликације. Неуспех да се стигне до SOCKS-а или преговара са њим може претходити сваком HTTP одговору, па не даје статусни код веб странице.
Потребни акредитиви за прокси користе подржане поставке за аутентификацију проксија и механизам тајни, одвојено од пријаве на веб страницу. Држите проверу TLS укљученом: отварање везе кроз SOCKS не утврђује идентитет HTTPS услуге.