multi-cURL ट्रांसफ़़र अपने क्रम में पूरे होते हैं। अगर आपने हर हैंडल को अलग प्रॉक्सी दी है, तो पहला पूरा हुआ परिणाम ज़रूरी नहीं कि आपकी इनपुट सूची की पहली प्रॉक्सी का हो।

हर हैंडल कॉन्फ़िगर करते समय एक स्थिर ट्रांसफ़़र पहचानकर्ता जोड़ें। अगर आप चुने जा सकने वाले सार्वजनिक एंडपॉइंट जांच रहे हैं, तो HTTP प्रॉक्सी सूची 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() किसी पूरे हुए ट्रांसफ़़र की सूचना देता है, तो पहचानकर्ता वापस पाने के लिए लौटाया गया हैंडल इस्तेमाल करें:

$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);

उस पहचानकर्ता से कुंजीबद्ध एक एप्लिकेशन रिकॉर्ड रखें जिसमें गंतव्य, कॉन्फ़िगर की गई प्रॉक्सी और प्रयास संख्या हो। किसी दूसरी प्रॉक्सी से दोबारा प्रयास नया प्रयास रिकॉर्ड होने योग्य है, भले ही वह उसी समग्र कार्य का हो।

तीन तरह के पते अलग रखें

कॉन्फ़िगर किया गया प्रॉक्सी एंडपॉइंट वह पता है जो cURL को दिया जाता है। कनेक्शन का पीयर पता उस नेटवर्क कनेक्शन का वर्णन करता है जो cURL ने खोला। गंतव्य-देखा गया एग्ज़िट IP दूसरी ओर से बताई गई जानकारी है। ये अलग हो सकते हैं, खासकर श्रृंखलाबद्ध या प्रदाता-प्रबंधित प्रॉक्सी के साथ।

निजी मेटाडेटा आपका इच्छित कॉन्फ़िगरेशन दर्ज करता है; यह साबित नहीं कर सकता कि गंतव्य ने कौन-सा IP देखा। इसके विपरीत, गंतव्य का IP उत्तर आपको स्वत: नहीं बताता कि आपके प्रोग्राम का कौन-सा हैंडल उसे बनाया।

नियमित लॉग में सुरक्षित प्रॉक्सी पहचानकर्ता संग्रहीत करें। अगर पूरे एंडपॉइंट में क्रेडेंशियल हैं, तो हर असफल ट्रांसफ़़र के लिए उस URL को लॉग करना पासवर्ड को आपके पूरे त्रुटि संग्रह में फैला देता है।

यह छोटा लेखा-कदम मिश्रित परिणामों को पढ़ना आसान बनाता है: एक कार्य, एक प्रयास, एक चुनी गई प्रॉक्सी और एक वास्तविक परिणाम। यह PHP के संसाधन-आधारित और ऑब्जेक्ट-आधारित cURL API के बीच बदले आकस्मिक हैंडल प्रतिनिधित्वों पर निर्भरता से भी बचता है।

संबंधित लेख