اس PHP multi-cURL منتقلی نے کون سا proxy استعمال کیا؟
ہر cURL handle کے ساتھ proxy میٹاڈیٹا رکھیں اور کنفیگر شدہ راستے کو منزل کے دیکھے گئے exit IP سے الگ پہچانیں۔
multi-cURL منتقلیاں اپنی ترتیب میں مکمل ہوتی ہیں۔ اگر آپ نے ہر handle کو الگ proxy دیا ہے، تو پہلا مکمل ہونے والا نتیجہ لازماً آپ کی ان پٹ فہرست کے پہلے proxy کا نہیں ہوتا۔
ہر handle کی کنفیگریشن کے وقت ایک مستقل منتقلی شناخت کنندہ منسلک کریں۔ اگر آپ قابلِ انتخاب عوامی endpoint آزما رہے ہیں، تو HTTP proxy فہرست HTTP امیدوار فراہم کرتی ہے۔ PHP libcurl کا نجی ڈیٹا طریقہ کار ظاہر کرتا ہے:
$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);
جب curl_multi_info_read() مکمل شدہ منتقلی کی اطلاع دیتا ہے، تو شناخت کنندہ بازیافت کرنے کے لیے واپس دیا گیا handle استعمال کریں:
$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);
اس شناخت کنندہ سے کلید شدہ ایپلیکیشن ریکارڈ رکھیں جس میں منزل، کنفیگر شدہ proxy اور کوشش کا نمبر ہو۔ کسی دوسرے proxy کے ذریعے دوبارہ کوشش نئے کوشش ریکارڈ کی حقدار ہے، چاہے وہ اسی مجموعی کام کا حصہ ہو۔
تین قسم کے پتے الگ رکھیں
کنفیگر شدہ proxy endpoint وہ پتہ ہے جو cURL کو دیا جاتا ہے۔ کنکشن کا peer پتہ cURL کی کھولی ہوئی نیٹ ورک کنکشن بیان کرتا ہے۔ منزل کا دیکھا گیا exit IP دوسری طرف سے بتائی گئی معلومات ہے۔ یہ مختلف ہو سکتے ہیں، خاص طور پر زنجیری یا فراہم کنندہ کے زیرِ انتظام proxy کے ساتھ۔
نجی میٹاڈیٹا آپ کی ارادی کنفیگریشن درج کرتا ہے؛ یہ ثابت نہیں کر سکتا کہ منزل نے کون سا IP دیکھا۔ اس کے برعکس، منزل کا IP جواب آپ کو خودکار طور پر نہیں بتاتا کہ آپ کے پروگرام کا کون سا handle اسے بنا۔
معمول کے لاگز میں محفوظ proxy شناخت کنندہ محفوظ کریں۔ اگر مکمل endpoint میں اسناد ہیں، تو ہر ناکام منتقلی کے لیے وہ URL لاگ کرنا پاس ورڈ کو آپ کے پورے غلطیوں کے مجموعے میں پھیلا دیتا ہے۔
حسابات کا یہ چھوٹا قدم ملی جلی نتائج پڑھنا آسان بناتا ہے: ایک کام، ایک کوشش، ایک منتخب proxy اور ایک حقیقی نتیجہ۔ یہ PHP کے وسیلہ پر مبنی اور آبجیکٹ پر مبنی cURL API کے درمیان بدلنے والی اتفاقی handle نمائشوں پر انحصار سے بھی بچاتا ہے۔