ആപ്ലിക്കേഷന്റെ നിലവിലുള്ള 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 സേവനത്തിന്റെ ഐഡന്റിറ്റി സ്ഥാപിക്കുന്നില്ല.

അനുബന്ധ ലേഖനങ്ങൾ