প্রক্সি প্রমাণীকরণের নিজস্ব cURL বিকল্প আছে। সাইটে লগইনের জন্য CURLOPT_USERPWD সেট করলে প্রক্সি অ্যাকাউন্ট সেট হয় না, আর CURLOPT_HTTPAUTH প্রক্সি প্রমাণীকরণ পদ্ধতি বাছে না।

<?php
$user = 'proxy-user';
$password = getenv('PROXY_PASSWORD');
if ($password === false) {
    throw new RuntimeException('Set PROXY_PASSWORD');
}

$ch = curl_init('https://example.com/');
curl_setopt_array($ch, [
    CURLOPT_PROXY => 'http://203.0.113.10:8080',
    CURLOPT_NOPROXY => '',
    CURLOPT_PROXYUSERPWD =>
        rawurlencode($user) . ':' . rawurlencode($password),
    CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT => 15,
]);

$body = curl_exec($ch);
if ($body === false) {
    throw new RuntimeException(curl_error($ch), curl_errno($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), PHP_EOL;

নথির IP বদলে ওই প্রক্সির দেওয়া পরিচয়পত্র নিন। উদাহরণে Basic ইচ্ছাকৃতভাবে বাছা হয়েছে; সব এন্ডপয়েন্টে প্রয়োজন ধরে না নিয়ে পরিষেবার সমর্থিত ও অনুমোদিত পদ্ধতি নিন।

মিলিত ঘরের এনকোডিং নিয়ম আছে

libcurl জানায় CURLOPT_PROXYUSERPWD ব্যবহারকারীনাম ও পাসওয়ার্ড URL-ডিকোড করে। উদাহরণ প্রতিটি অংশ বিভাজক দিয়ে জোড়ার আগে এনকোড করে। পরিচয়পত্রে আক্ষরিক শতাংশ ক্রম বা অন্য বিশেষ অক্ষর থাকলে তা গুরুত্বপূর্ণ।

আলাদা প্রক্সি ব্যবহারকারীনাম ও পাসওয়ার্ড বিকল্প সরাসরি নিজ নিজ মান নেয়:

curl_setopt($ch, CURLOPT_PROXYUSERNAME, $user);
curl_setopt($ch, CURLOPT_PROXYPASSWORD, $password);

অনুরোধ চালানোর আগে এগুলো বিকল্প পরিচয়পত্ররূপ হিসেবে নিন। মিলিত প্রক্সি ঘরের ডিকোডিং নিয়ম আপনাআপনি CURLOPT_USERPWD-এ লাগাবেন না; libcurl পার্থক্য জানায়।

প্রমাণীকরণের ধাপ আলাদা রাখুন

CURLOPT_PROXYAUTH প্রক্সি প্রমাণীকরণ আর CURLOPT_HTTPAUTH গন্তব্যের HTTP প্রমাণীকরণ বাছে। দুপক্ষ লগইন চাইলে প্রত্যেকের উপযুক্ত বিকল্প দিন, একই পরিচয়পত্র দুজায়গায় কপি করবেন না।

CURLAUTH_ANY আলোচনা অনুমোদন করে এবং পদ্ধতি নির্বাচনের আগে চ্যালেঞ্জ-উত্তর বিনিময় যোগ করতে পারে। এতে পরিচয়পত্র সঠিক প্রমাণ হয় না। অতিরিক্ত Proxy-Authorization হেডার হাতে যোগ করলে লাইব্রেরির প্রমাণীকরণ বিঘ্নিত হতে পারে।

প্রক্সিতে স্পষ্টপাঠ সংযোগের Basic পরিচয়পত্র সাইটের পরের TLS টানেল রক্ষা করে না। প্রমাণীকরণযুক্ত পরিষেবা ব্যবহার বাছার সময় ওই পরিবহন আলাদাভাবে যাচাই করুন।

সম্পর্কিত নিবন্ধ