Tarpinio serverio IP ir prievadas: kokio formato reikia programai?
Paverskite tarpinio serverio sąrašo įrašą HTTP ar SOCKS URL, užpildykite atskirus pagrindinio kompiuterio ir prievado laukus bei tinkamai formatuokite IPv6 adresus.
Kai kurios programos prašo IP:port. Kitoms reikia URL, prasidedančio http:// arba socks5://. Naršyklės nuostatose adresas ir prievadas dažnai rašomi atskiruose laukuose. Taigi tas pats galinis taškas gali būti pateiktas keliais formatais nekeičiant jo adreso.
IPv4 įrašas
Tarkime, HTTP tarpinių serverių sąraše pateiktas pavyzdinis HTTP tarpinis serveris 203.0.113.10:8080.
| Programa prašo | Įveskite |
|---|---|
| Pagrindinis kompiuteris arba IP | 203.0.113.10 |
| Prievadas | 8080 |
| HTTP tarpinio serverio URL | http://203.0.113.10:8080 |
Nenurodykite prievado du kartus. Jei programa jau turi prievado lauką, įrašius 203.0.113.10:8080 pagrindinio kompiuterio lauke ji gali bandyti visą eilutę išspręsti kaip kompiuterio vardą. Taip pat nepridėkite schemos į lauką, kuriame aiškiai tikimasi tik IP adreso.
Schema turi atitikti paslaugą. Prieš konvertuodami adresą pasirinkite HTTP arba SOCKS5 pagal kliento palaikymą. Prieš HTTP galinį tašką parašius socks5:// pasikeičia kliento siunčiami duomenys; tai neįjungia SOCKS5 serveryje.
IPv6 adresui URL reikia laužtinių skliaustų
IPv6 adrese jau yra dvitaškių, todėl URL apgaubia adresą laužtiniais skliaustais prieš pridėdamas prievadą:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
Be skliaustų riba tarp adreso ir prievado neaiški. Programa su atskirais laukais paprastai prašo 2001:db8::10 kaip pagrindinio kompiuterio ir 8080 kaip prievado; laikykitės jos įvesties formato. Abu čia naudojami adresai yra dokumentacijos pavyzdžiai, o ne veikiantys tarpiniai serveriai.
Analizuokite URL, o ne skaidykite ties kiekvienu dvitaškiu
Nedidelis Python scenarijus gali apdoroti IPv4 URL ir IPv6 URL su skliaustais naudodamas standartinį URL analizatorių:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
Savybė hostname grąžina adresą be skliaustų. Pradinės eilutės skaidymas ties kiekvienu dvitaškiu sugadintų šį pavyzdį. Tikrame importuotojuje taip pat atmeskite trūkstamus pagrindinius kompiuterius, nepalaikomas schemas ir prievadus už 1–65535 ribų. URL analizė pateikia jo dalis, bet neįrodo, kad paslauga egzistuoja.
Kai sąraše yra naudotojo vardas ir slaptažodis
Dažna URL struktūra yra http://username:password@host:port. Prisijungimo duomenų simboliai, tokie kaip @, # ir /, turi būti tinkamai užkoduoti URL. Jei klientas siūlo atskirus prisijungimo duomenų laukus, juos naudoti paprastai lengviau, nei rankomis sudaryti URL.
Prieš konvertuodami dvitaškiais atskirtą prisijungimo duomenų eilutę patikrinkite pradinį teikėjo formatą. Keturi taip atskirti laukai neturi universalios reikšmės, o pats slaptažodis gali turėti dvitaškį. Paprastoms IP:port eilutėms skirtas analizatorius neturėtų tyliai spėlioti kito formato.