IP και θύρα proxy: ποια μορφή χρειάζεται η εφαρμογή σας;
Μετατρέψτε μια εγγραφή λίστας proxy σε URL HTTP ή SOCKS, συμπληρώστε χωριστά πεδία host και θύρας και μορφοποιήστε σωστά διευθύνσεις IPv6.
Ορισμένες εφαρμογές ζητούν IP:port. Άλλες χρειάζονται URL που αρχίζει με http:// ή socks5://. Οι ρυθμίσεις του προγράμματος περιήγησης συχνά χωρίζουν τη διεύθυνση και τη θύρα σε διαφορετικά πεδία. Έτσι, το ίδιο τελικό σημείο μπορεί να εμφανίζεται σε πολλές μορφές χωρίς αλλαγή διεύθυνσης.
Μια εγγραφή IPv4
Έστω ότι μια λίστα HTTP proxy δίνει ως παράδειγμα τον HTTP proxy 203.0.113.10:8080.
| Η εφαρμογή ζητά | Εισαγάγετε |
|---|---|
| Host ή IP | 203.0.113.10 |
| Θύρα | 8080 |
| URL HTTP proxy | http://203.0.113.10:8080 |
Μην προσθέτετε τη θύρα δύο φορές. Αν η εφαρμογή έχει ήδη πεδίο θύρας, το 203.0.113.10:8080 στο πεδίο host μπορεί να την κάνει να προσπαθήσει να επιλύσει ολόκληρη τη συμβολοσειρά ως όνομα host. Επίσης, μην προσθέτετε σχήμα σε πεδίο που αναμένει ρητά μόνο διεύθυνση IP.
Το σχήμα πρέπει να ταιριάζει στην υπηρεσία. Επιλέξτε HTTP ή SOCKS5 σύμφωνα με την υποστήριξη του πελάτη πριν μετατρέψετε τη διεύθυνση. Η προσθήκη socks5:// μπροστά από τελικό σημείο HTTP αλλάζει όσα στέλνει ο πελάτης· δεν ενεργοποιεί SOCKS5 στον διακομιστή.
Το IPv6 χρειάζεται αγκύλες σε URL
Μια διεύθυνση IPv6 περιέχει ήδη άνω και κάτω τελείες, οπότε το URL περικλείει τη διεύθυνση σε αγκύλες πριν προσθέσει τη θύρα:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
Χωρίς αγκύλες, το όριο διεύθυνσης και θύρας είναι ασαφές. Μια εφαρμογή με χωριστά πεδία συνήθως ζητά 2001:db8::10 ως host και 8080 ως θύρα· ακολουθήστε τη μορφή εισόδου της. Και οι δύο διευθύνσεις εδώ είναι παραδείγματα τεκμηρίωσης, όχι ενεργοί proxy.
Αναλύστε τα URL αντί να χωρίζετε σε κάθε άνω και κάτω τελεία
Ένα μικρό σενάριο Python μπορεί να χειριστεί URL IPv4 και IPv6 με αγκύλες μέσω του τυπικού αναλυτή URL:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
Η ιδιότητα hostname επιστρέφει τη διεύθυνση χωρίς τις αγκύλες. Ο διαχωρισμός της αρχικής συμβολοσειράς σε κάθε άνω και κάτω τελεία θα χαλούσε αυτό το παράδειγμα. Σε πραγματικό εισαγωγέα, απορρίπτετε επίσης απόντες host, μη υποστηριζόμενα σχήματα και θύρες εκτός του 1–65535. Η ανάλυση URL δίνει τα συστατικά του· δεν αποδεικνύει ότι η υπηρεσία υπάρχει.
Όταν η λίστα περιλαμβάνει όνομα χρήστη και κωδικό
Μια συνηθισμένη δομή URL είναι http://username:password@host:port. Χαρακτήρες όπως @, # και / μέσα στα διαπιστευτήρια χρειάζονται σωστή κωδικοποίηση URL. Αν ο πελάτης προσφέρει χωριστά πεδία διαπιστευτηρίων, συνήθως είναι ευκολότερα από τη χειροκίνητη κατασκευή URL.
Ελέγξτε την αρχική μορφή του παρόχου πριν μετατρέψετε συμβολοσειρά διαπιστευτηρίων με διαχωριστικά άνω και κάτω τελείες. Τέσσερα τέτοια πεδία δεν έχουν καθολική σημασία, ενώ ο ίδιος ο κωδικός μπορεί να περιέχει άνω και κάτω τελεία. Ένας αναλυτής απλών γραμμών IP:port δεν πρέπει να μαντεύει σιωπηρά διαφορετική μορφή.