Ποιο proxy χρησιμοποίησε αυτή η μεταφορά PHP multi-cURL;
Διατηρήστε μεταδεδομένα proxy με κάθε handle cURL και διακρίνετε τη ρυθμισμένη διαδρομή από μια εξερχόμενη IP που παρατηρεί ο προορισμός.
Οι μεταφορές multi-cURL ολοκληρώνονται με τη δική τους σειρά. Αν εκχωρήσατε διαφορετικό proxy σε κάθε handle, το πρώτο ολοκληρωμένο αποτέλεσμα δεν ανήκει απαραίτητα στο πρώτο proxy της λίστας εισόδου σας.
Επισυνάψτε ένα σταθερό αναγνωριστικό μεταφοράς κατά τη διαμόρφωση κάθε handle. Αν δοκιμάζετε δημόσια τελικά σημεία που μπορούν να επιλεγούν, η λίστα proxy 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() αναφέρει μια ολοκληρωμένη μεταφορά, χρησιμοποιήστε το handle που επιστρέφεται για να ανακτήσετε το αναγνωριστικό:
$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);
Κρατήστε μια εγγραφή εφαρμογής με κλειδί αυτό το αναγνωριστικό που περιέχει τον προορισμό, το ρυθμισμένο proxy και τον αριθμό προσπάθειας. Μια επανάληψη μέσω άλλου proxy αξίζει νέα εγγραφή προσπάθειας, ακόμη κι αν ανήκει στην ίδια συνολική εργασία.
Κρατήστε τρεις τύπους διευθύνσεων χωριστά
Το ρυθμισμένο τελικό σημείο proxy είναι η διεύθυνση που δίνεται στο cURL. Η διεύθυνση ομοτίμου μιας σύνδεσης περιγράφει τη σύνδεση δικτύου που άνοιξε το cURL. Μια εξερχόμενη IP που παρατηρεί ο προορισμός είναι πληροφορία που αναφέρεται από την άλλη πλευρά. Μπορούν να διαφέρουν, ειδικά με αλυσιδωτά ή διαχειριζόμενα από πάροχο proxy.
Τα ιδιωτικά μεταδεδομένα καταγράφουν τη σκοπούμενη διαμόρφωσή σας· δεν μπορούν να αποδείξουν ποια IP παρατήρησε ο προορισμός. Αντίστροφα, μια απάντηση IP από τον προορισμό δεν σας λέει αυτόματα ποιο handle στο πρόγραμά σας την παρήγαγε.
Αποθηκεύστε ένα ασφαλές αναγνωριστικό proxy στα συνήθη αρχεία καταγραφής. Αν το πλήρες τελικό σημείο περιέχει διαπιστευτήρια, η καταγραφή αυτής της διεύθυνσης URL για κάθε αποτυχημένη μεταφορά διασπείρει τον κωδικό πρόσβασης σε όλη τη συλλογή σφαλμάτων σας.
Αυτό το μικρό βήμα λογιστικής κάνει τα μικτά αποτελέσματα ευκολότερα στην ανάγνωση: μία εργασία, μία προσπάθεια, ένα επιλεγμένο proxy και ένα πραγματικό αποτέλεσμα. Αποφεύγει επίσης να βασίζεστε σε τυχαίες αναπαραστάσεις handle που άλλαξαν μεταξύ των API cURL της PHP που βασίζονται σε πόρους και σε αντικείμενα.