ಅಪ್ಲಿಕೇಶನ್‌ನ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ 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 ಸೇವೆಯ ಗುರುತನ್ನು ಸ್ಥಾಪಿಸುವುದಿಲ್ಲ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು