SOCKS5 হোস্টনেম রিজ়লিউশনের জন্য libcurl হ্যান্ডেল কনফিগার করুন
প্রক্সির মাধ্যমে গন্তব্য রিজ়ল্ভ করতে ট্রান্সফার হ্যান্ডেলে 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 দৃশ্য ব্যবহার করতে পারে। libcurl ব্যবহার করা একটি C++ HTTP ক্লায়েন্টকে শুধু এই পথ বাছাই করার জন্য নিজস্ব SOCKS হ্যান্ডশেকের প্রয়োজন নেই। অনুমোদিত একটি পাবলিক এন্ডপয়েন্টের জন্য, SOCKS5 প্রক্সি তালিকা উদাহরণস্বরূপ loopback লিসেনারের বদলে হোস্ট ও পোর্টের প্রার্থী সরবরাহ করে।
খালি CURLOPT_NOPROXY মান প্রক্সি পরীক্ষাটিকে ইচ্ছাকৃত করে। সাধারণ অ্যাপ্লিকেশন নীতিতে মানিয়ে নেওয়ার সময় অভীষ্ট বাইপাসগুলি সংরক্ষণ করুন। এই অপশনগুলি এই হ্যান্ডেলকে প্রভাবিত করে; প্রক্রিয়ার অন্যান্য লাইব্রেরি ও সকেট এগুলি উত্তরাধিকার পায় না।
অপশন সেট করা এবং ট্রান্সফারের রিটার্ন মান অ্যাপ্লিকেশনের ত্রুটি ব্যবস্থাপনার মাধ্যমে পরীক্ষা করুন। SOCKS-এ পৌঁছাতে বা তার সাথে negotiate করতে ব্যর্থ হওয়া যেকোনো HTTP প্রতিক্রিয়ার আগে ঘটতে পারে, তাই এটি ওয়েবসাইটের স্ট্যাটাস কোড দেয় না।
প্রয়োজনীয় প্রক্সি ক্রেডেনশিয়াল ওয়েবসাইটের লগইন থেকে আলাদাভাবে সমর্থিত প্রক্সি প্রমাণীকরণ সেটিংস এবং সিক্রেট ব্যবস্থা ব্যবহার করে। TLS যাচাই সক্রিয় রাখুন: SOCKS-এর মাধ্যমে সংযোগ খোলা HTTPS পরিষেবার পরিচয় প্রতিষ্ঠা করে না।