Επιλογή τοπικής διεπαφής και διακομιστή μεσολάβησης σε μία μεταφορά cURL
Χρησιμοποιήστε το CURLOPT_INTERFACE για την τοπική πηγή και το CURLOPT_PROXY για τον μεσολαβητή, λαμβάνοντας υπόψη τη δρομολόγηση του OS και το NAT.
Ένα μηχάνημα με πολλές τοπικές διευθύνσεις μπορεί να χρειάζεται μία από αυτές για τη σύνδεσή του με έναν διακομιστή μεσολάβησης προώθησης. Το cURL μπορεί να κάνει και τις δύο επιλογές ρητά:
curl_setopt_array($handle, [
CURLOPT_URL => 'https://example.com/',
CURLOPT_INTERFACE => '192.0.2.20',
CURLOPT_PROXY => 'http://proxy.example:8080',
]);
Αυτή είναι μια ενδεικτική διαμόρφωση για μια υπάρχουσα λαβή cURL. Αντικαταστήστε το 192.0.2.20 με μια διεύθυνση πηγής που είναι πραγματικά διαθέσιμη στο μηχάνημα που εκτελεί PHP. Για ένα επιτρεπόμενο δημόσιο αίτημα χωρίς λογαριασμό μεσολάβησης, η λίστα HTTP proxy μπορεί να παρέχει τον απομακρυσμένο ακροατή για την τιμή του μεσολαβητή.
Το CURLOPT_INTERFACE επιλέγει την τοπική πλευρά της εξερχόμενης σύνδεσης. Το CURLOPT_PROXY επιλέγει τον μεσολαβητή που μεταφέρει το αίτημα προς τα εμπρός. Η επιλογή τοπικής πηγής δεν μετατρέπει το μηχάνημα σε απομακρυσμένο μεσολαβητή ούτε του δίνει αυθαίρετη δημόσια IP.
Σε αυτή τη διαδρομή, η τοπική επιλογή επηρεάζει τη σύνδεση προς τον μεσολαβητή. Ο ιστότοπος βλέπει γενικά την επόμενη διεύθυνση πηγής του μεσολαβητή. Το NAT μεταξύ οποιουδήποτε από τα δύο ζεύγη μπορεί να μεταφράσει περαιτέρω τη διεύθυνση που βλέπει κάθε παραλήπτης.
Αν η επιλογή διεπαφής παραλειφθεί, το libcurl αφήνει τη στοίβα TCP να επιλέξει κατάλληλη πηγή. Αυτή η επιλογή ακολουθεί τη διαμόρφωση δικτύου του μηχανήματος· δεν είναι καθολικός κανόνας ότι κερδίζει η πρώτη διεύθυνση σε ένα αρχείο διαμόρφωσης.
Το libcurl δέχεται ονόματα διεπαφών σε υποστηριζόμενες πλατφόρμες, αλλά η τεκμηρίωσή του αποκλείει την επιλογή ονομάτων διεπαφών Windows για αυτήν την επιλογή. Η χρήση ονόματος κεντρικού υπολογιστή μπορεί επίσης να προκαλέσει αναζήτηση που μπλοκάρει. Μια γνωστή τοπική διεύθυνση είναι σαφέστερη είσοδος όταν αυτή είναι η επιλογή που σκοπεύει η εφαρμογή.