त्यो PHP multi-cURL स्थानान्तरणले कुन प्रोक्सी प्रयोग गर्यो?
प्रत्येक cURL ह्यान्डलसँग प्रोक्सी मेटाडाटा राख्नुहोस् र कन्फिगर गरिएको मार्गलाई गन्तव्य-देखिएको एक्जिट IP बाट छुट्याउनुहोस्।
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 बीच बदलिएका आकस्मिक ह्यान्डल प्रतिनिधित्वहरूमा निर्भर हुनबाट पनि बचाउँछ।