Ρύθμιση ενός libcurl handle για επίλυση ονόματος κεντρικού υπολογιστή μέσω SOCKS5
Χρησιμοποιήστε το CURLPROXY_SOCKS5_HOSTNAME στο handle μεταφοράς για να επιλύσετε τον προορισμό μέσω του διαμεσολαβητή.
Μέσα στην υπάρχουσα αρχικοποίηση libcurl της εφαρμογής και τον κύκλο ζωής του easy-handle:
curl_easy_setopt(handle, CURLOPT_URL, "https://example.com/");
curl_easy_setopt(handle, CURLOPT_PROXY, "127.0.0.1:1080");
curl_easy_setopt(handle, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_easy_setopt(handle, CURLOPT_NOPROXY, "");
curl_easy_setopt(handle, CURLOPT_CONNECTTIMEOUT, 5L);
curl_easy_setopt(handle, CURLOPT_TIMEOUT, 15L);CURLPROXY_SOCKS5_HOSTNAME στέλνει το όνομα κεντρικού υπολογιστή του προορισμού κατά μήκος της διαδρομής SOCKS. CURLPROXY_SOCKS5 αντίθετα το επιλύει στον πελάτη, ο οποίος μπορεί να χρησιμοποιήσει την όψη DNS ενός άλλου δικτύου. Ένας πελάτης HTTP σε C++ που χρησιμοποιεί libcurl δεν χρειάζεται τη δική του χειραψία SOCKS μόνο για να επιλέξει αυτή τη διαδρομή. Για ένα επιτρεπόμενο δημόσιο τελικό σημείο, η λίστα διαμεσολαβητών SOCKS5 προσφέρει υποψήφια κεντρικού υπολογιστή και θύρας για να αντικαταστήσουν τον ενδεικτικό ακροατή loopback.
Η κενή CURLOPT_NOPROXY τιμή καθιστά τη δοκιμή του διαμεσολαβητή σκόπιμη. Διατηρήστε τις προβλεπόμενες παρακάμψεις όταν την προσαρμόζετε στην κανονική πολιτική της εφαρμογής. Αυτές οι επιλογές επηρεάζουν αυτό το handle· άλλες βιβλιοθήκες και υποδοχές στη διεργασία δεν τις κληρονομούν.
Ελέγξτε τις τιμές επιστροφής της ρύθμισης επιλογών και της μεταφοράς μέσω της διαχείρισης σφαλμάτων της εφαρμογής. Η αποτυχία προσέγγισης ή διαπραγμάτευσης με το SOCKS μπορεί να προηγηθεί οποιασδήποτε απόκρισης HTTP, επομένως δεν παρέχει κωδικό κατάστασης ιστότοπου.
Τα απαιτούμενα διαπιστευτήρια διαμεσολαβητή χρησιμοποιούν τις υποστηριζόμενες ρυθμίσεις ελέγχου ταυτότητας διαμεσολαβητή και τον μηχανισμό μυστικών, χωριστά από τη σύνδεση στον ιστότοπο. Διατηρήστε ενεργή την επαλήθευση TLS: το άνοιγμα σύνδεσης μέσω SOCKS δεν αποδεικνύει την ταυτότητα της υπηρεσίας HTTPS.