ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਮੌਜੂਦਾ 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 ਸੇਵਾ ਦੀ ਪਛਾਣ ਸਥਾਪਿਤ ਨਹੀਂ ਕਰਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ