Chrome এক্সটেনশন থেকে পর্যবেক্ষিত এক্সিট IP যাচাই করুন
এক্সটেনশনের উৎস থেকে একটি নিয়ন্ত্রিত এন্ডপয়েন্টে সীমিত অনুরোধ পাঠান এবং যাচাইটি আসলে কী প্রমাণ করে তা জানান।
Chrome এক্সটেনশনে প্রক্সি যাচাইয়ের জন্য এমন একটি গন্তব্য দরকার যার প্রতিক্রিয়া আগে থেকেই অনুমান করা যায়। আপনি যে HTTPS এন্ডপয়েন্ট নিয়ন্ত্রণ করেন সেটি ব্যবহার করুন, যেমন এমন একটি যা নিজে যে ঠিকানা দেখে তা নিয়ে ছোট JSON অবজেক্ট ফেরত দেয়।
অনুরোধটি এক্সটেনশনের প্রসঙ্গ থেকে চালান, যেমন এর সার্ভিস ওয়ার্কার বা এক্সটেনশন পৃষ্ঠা থেকে, আর এন্ডপয়েন্টটি manifest-এর host permissions-এ রাখুন:
"host_permissions": ["https://probe.example/*"]
host permission কোনো content script-কে একই ক্রস-অরিজিন সুবিধা দেয় না। যাচাইটি এক্সটেনশনের প্রসঙ্গেই রাখুন, ইনজেক্ট করা স্ক্রিপ্ট একই অনুরোধ করতে পারবে বলে ধরে নেবেন না।
async function probe() {
const controller = new AbortController();
const timer = setTimeout(() => controller.abort(), 5000);
try {
const response = await fetch('https://probe.example/ip', {
cache: 'no-store',
signal: controller.signal,
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
if (typeof result.ip !== 'string') throw new Error('Bad probe body');
return result.ip;
} finally {
clearTimeout(timer);
}
}
হোস্টনামটি একটি প্লেসহোল্ডার। সার্ভার ও ক্লায়েন্টকে প্রতিক্রিয়ার ফরম্যাট ও ক্যাশিং নীতি নিয়ে একমত হতে হবে। প্রত্যাখ্যাত অনুরোধ ও বিকৃত প্রতিক্রিয়া এক্সটেনশনের কলার-এ সামলান, সেগুলোকে বৈধ এক্সিট ঠিকানা হিসেবে দেখাবেন না।
পর্যবেক্ষণের নাম সঠিক রাখুন
সফল ফলাফল প্রমাণ করে যে এই অনুরোধটি এন্ডপয়েন্টে পৌঁছেছে এবং প্রত্যাশিত আকারের উত্তর পেয়েছে। যেখানে তুলনাটি অর্থবহ, সেখানে পর্যবেক্ষিত ঠিকানাটিকে আপনি যে পথ চেয়েছিলেন তার সঙ্গে মিলিয়ে দেখুন। কনফিগার করা প্রক্সির শোনা IP তার সার্বজনীন এক্সিট না-ও হতে পারে।
PAC নিয়ম বা বাইপাস তালিকা যাচাইটি সরাসরি পাঠাতে পারে, যখন অন্য গন্তব্য প্রক্সি ব্যবহার করে। প্রক্সি সেটিংস পড়লে কনফিগারেশনের প্রমাণ পাওয়া যায়; অনুরোধটি এই গন্তব্যের জন্য প্রমাণ দেয়। কোনোটিই একা প্রমাণ করে না যে প্রতিটি ট্যাব বা URL একই পথ অনুসরণ করে।
ইন্টারফেসে টাইমআউট, HTTP ত্রুটি ও অপ্রত্যাশিত বডি আলাদা রাখুন। একটি অনুরোধের পর পুরো মেশিন অফলাইন ঘোষণা করার চেয়ে “এই যাচাই ব্যর্থ হয়েছে” বলা বেশি কাজে দেয়।