Програмын одоо байгаа 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 харагдацыг ашиглаж болно. libcurl ашигладаг C++ HTTP клиент зөвхөн энэ замыг сонгохын тулд өөрийн SOCKS гар барилт хийх шаардлагагүй. Зөвшөөрөгдсөн нийтийн төгсгөлийн цэгийн хувьд, SOCKS5 прокси жагсаалт жишээ loopback сонсогчийг орлуулах хост болон портын нэр дэвшигчдийг санал болгодог.

Хоосон CURLOPT_NOPROXY утга нь прокси тестийг санаатай болгоно. Үүнийг програмын ердийн бодлогод тохируулахдаа төлөвлөсөн тойрч гарах замыг хадгална уу. Эдгээр сонголт нь энэ бариулд нөлөөлнө; процесс дахь бусад сан, сокетууд тэдгээрийг өвлөхгүй.

Сонголт тохируулах болон дамжуулалтын буцаах утгыг програмын алдаа боловсруулалтаар шалгана уу. SOCKS-д хүрэх эсвэл түүнтэй хэлэлцээр хийхэд гарсан алдаа нь аливаа HTTP хариунаас өмнө тохиолдож болох тул вэбсайтын төлөвийн кодыг өгөхгүй.

Шаардлагатай прокси итгэмжлэл нь вэбсайтад нэвтрэхээс тусдаа дэмжигдсэн прокси баталгаажуулалтын тохиргоо болон нууцын механизмыг ашигладаг. TLS шалгалтыг асаалттай байлгаарай: SOCKS-оор холболт нээх нь HTTPS үйлчилгээний хувийн мэдээллийг тогтоохгүй.

Холбоотой нийтлэлүүд